首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Route53的事件

Route53的事件
EN

Stack Overflow用户
提问于 2022-01-21 19:02:37
回答 1查看 408关注 0票数 0

我们开发了一个警报系统,每次从53号干线dns记录中添加或删除一个新的主机名。系统自动检测集群中添加了一个新实例,通过标记填充其主机名,并通过cli脚本将其发送到路由53,更新域记录,添加或删除已删除的ec2实例的主机名或添加添加的ec2实例。但是,由于我们是一个大型组织,这将为该组织的aws环境中的所有域名提供警报。我们希望将其限制为几个特定的域名(例如,在dev环境中并不是所有的域名)。

可以想象,我们部署了EventBridge来将SNS触发到一个松弛的端点。

但是为了限制对系统中两个域的告警,我们希望能够在eventBridge触发事件并发送警报之前过滤域名,因此只能在特定域而不是所有域上获取警报。

如何筛选Route53在触发事件桥事件之前正在处理的域名?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-22 10:24:44

解决方案1

如果要触发的域记录位于同一路由53托管区域中,则可以使用以下EventBridge事件模式根据托管区域ID进行筛选:

代码语言:javascript
复制
{
  "source": ["aws.route53"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["route53.amazonaws.com"],
    "eventName": ["ChangeResourceRecordSets"],
    "requestParameters": {
      "hostedZoneId": ["your-hosted-zone-id-of-domain1-here", "hosted-zone-id-of-domain2-here"]
    }
  }
}

上述事件模式将匹配对ids位于hostedZoneId数组中的任何托管区域中的记录所做的更改。

解决方案2

仅在必须触发宿主区域中的特定域或子域,而不是对托管区域中的所有域记录更改触发时,才使用此方法:

代码语言:javascript
复制
{
  "source": [
    "aws.route53"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "route53.amazonaws.com"
    ],
    "eventName": [
      "ChangeResourceRecordSets"
    ],
    "requestParameters": {
      "changeBatch": {
        "changes": {
          "resourceRecordSet": {
            "name": ["subdomain.example.com.", "example.com."]
          }
        }
      }
    }
  }
}

上面的事件模式将匹配对“ChangeResourceRecordSets”进行更改的subdomain.example.com API调用。或者“example.com”

免责声明: API调用允许更改同一个API调用中的多个域记录,只要它们位于同一个托管区域。即使API调用中只有一个域记录更改与您相关,事件也会触发。这使得解决方案1更可靠,更容易编写代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70806403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档