搭配使用 ARC 中的就绪检查和 Amazon EventBridge
使用 Amazon EventBridge,您可以设置事件驱动型规则,以监控您的 Amazon 应用程序恢复控制器(ARC)中的就绪检查资源并启动使用其他 Amazon 服务的目标操作。例如,您可以设置一个规则,当就绪检查状态从就绪变为未就绪时,通过向 Amazon SNS 主题发信号来发送电子邮件通知。
注意
ARC 仅发布美国西部(俄勒冈州) (us-west-2) Amazon 区域中的 EventBridge 就绪检查事件。要接收 EventBridge 就绪检查事件,请在美国西部(俄勒冈州)区域中创建 EventBridge 规则。
您可以在 Amazon EventBridge 中创建规则,以处理以下任何 ARC 就绪检查事件:
-
就绪检查就绪。该事件指定就绪检查状态是否发生变化,例如,从 READY 变为 NOT READY。
要捕获您感兴趣的特定 ARC 事件,请定义 EventBridge 可用于检测事件的特定事件规律。事件规律与它们匹配的事件具有相同的结构。模式引用了您要匹配的字段,并提供您所查找的值。
尽最大努力发出事件。在正常运行环境下,它们近乎实时地从 ARC 发送到 EventBridge。但是,可能会出现延迟或阻止事件交付的情况。
有关 EventBridge 规则如何处理事件规律的信息,请参阅 EventBridge 中的事件和事件规律。
使用 EventBridge 监控就绪检查资源
使用 EventBridge,您可以创建规则来定义 ARC 为其就绪检查资源发出事件时要采取的操作。
要键入或复制事件规律并将其粘贴到 EventBridge 控制台中,请在控制台中选择输入自己的选项。为帮助确定对您有用的事件规律,本主题包括就绪事件规律示例。
要为资源事件创建规则
访问 https://console.aws.amazon.com/events/,打开 Amazon EventBridge 控制台。
-
对于要在其中创建规则的 Amazon Web Services 区域,请选择美国西部(俄勒冈州)。这是就绪事件要求的区域。
-
选择 Create rule (创建规则)。
-
输入规则的 Name (名称) 和“Description (描述)”(可选)。
-
对于事件总线,保留默认值,即默认。
-
选择下一步。
-
对于构建事件规律步骤,对于事件源,保留默认值,即 Amazon 事件。
-
在示例事件下,选择输入我自己的。
-
对于示例事件,键入或复制并粘贴事件规律。有关示例,请参阅下一节。
就绪事件规律示例
事件规律与它们匹配的事件具有相同的结构。模式引用了您要匹配的字段,并提供您所查找的值。
您可以将本节中的事件规律复制并粘贴到 EventBridge 中,以创建可用于监控 ARC 操作和资源的规则。
以下事件规律提供了您可以在 EventBridge 中使用的示例,通过该示例,您可以了解 ARC 中的就绪检查功能。
-
选择来自 ARC 就绪检查的所有事件。
{ "source": [ "aws.route53-recovery-readiness" ] } -
仅选择与单元相关的事件。
{ "source": [ "aws.route53-recovery-readiness" ], "detail-type": [ "Route 53 Application Recovery Controller cell readiness status change" ] } -
仅选择与名为
MyExampleCell的特定单元相关的事件。{ "source": [ "aws.route53-recovery-readiness" ], "detail-type": [ "Route 53 Application Recovery Controller cell readiness status change" ], "resources": [ "arn:aws:route53-recovery-readiness::111122223333:cell/MyExampleCell" ] } -
仅选择任何恢复组、单元或就绪检查状态变为
NOT READY时的事件。{ "source":[ "aws.route53-recovery-readiness" ], "detail-type":{ "new-state":{ "readiness-status":[ "NOT_READY" ] } } } -
仅选择任何恢复组、单元或就绪检查变为
READY以外状态时的事件。{ "source":[ "aws.route53-recovery-readiness" ], "detail":{ "new-state":{ "readiness-status":[ { "anything-but":"READY" } ] } } }
以下是 ARC 恢复组就绪状态更改事件的示例:
{ "version": "0", "account":"111122223333", "detail-type":"Route 53 Application Recovery Controller recovery group readiness status change", "source":"route53-recovery-readiness.amazonaws.com", "time":"2020-11-03T00:31:54Z", "id": "1234a678-1b23-c123-12fd3f456e78", "region": "us-west-2", "resources":[ "arn:aws:route53-recovery-readiness::111122223333:recovery-group/BillingApp" ], "detail": { "recovery-group-name": "BillingApp", "previous-state": { "readiness-status": "READY|NOT_READY|UNKNOWN|NOT_AUTHORIZED" }, "new-state": { "readiness-status": "READY|NOT_READY|UNKNOWN|NOT_AUTHORIZED" } } }
以下是 ARC 单元就绪状态更改事件的示例:
{ "version": "0", "account":"111122223333", "detail-type":"Route 53 Application Recovery Controller cell readiness status change", "source":"route53-recovery-readiness.amazonaws.com", "time":"2020-11-03T00:31:54Z", "id": "1234a678-1b23-c123-12fd3f456e78", "region": "us-west-2", "resources":[ "arn:aws:route53-recovery-readiness::111122223333:cell/PDXCell" ], "detail": { "cell-name": "PDXCell", "previous-state": { "readiness-status": "READY|NOT_READY|UNKNOWN|NOT_AUTHORIZED" }, "new-state": { "readiness-status": "READY|NOT_READY|UNKNOWN|NOT_AUTHORIZED" } } }
以下是 ARC 就绪检查状态更改事件的示例:
{ "version": "0", "account":"111122223333", "detail-type":"Route 53 Application Recovery Controller readiness check status change", "source":"route53-recovery-readiness.amazonaws.com", "time":"2020-11-03T00:31:54Z", "id": "1234a678-1b23-c123-12fd3f456e78", "region": "us-west-2", "resources":[ "arn:aws:route53-recovery-readiness::111122223333:readiness-check/UserTableReadinessCheck" ], "detail": { "readiness-check-name": "UserTableReadinessCheck", "previous-state": { "readiness-status": "READY|NOT_READY|UNKNOWN|NOT_AUTHORIZED" }, "new-state": { "readiness-status": "READY|NOT_READY|UNKNOWN|NOT_AUTHORIZED" } } }
指定要用作目标的 CloudWatch 日志组
创建 EventBridge 规则时,必须指定匹配该规则的事件将发送到的目标。有关 EventBridge 可用目标的列表,请参阅 EventBridge 控制台中的可用目标。您可以添加到 EventBridge 规则的目标之一是 Amazon CloudWatch 日志组。本节介绍了将 CloudWatch 日志组添加为目标的要求,并提供了在创建规则时添加日志组的过程。
要将 CloudWatch 日志组添加为目标,您可以执行下列操作之一:
创建新日志组
选择现有日志组
如果您在创建规则时使用控制台指定了新的日志组,则 EventBridge 会自动为您创建该日志组。请确保用作 EventBridge 规则目标的日志组以 /aws/events 开头。如果要选择现有的日志组,请注意,只有以 /aws/events 开头的日志组才会作为选项出现在下拉菜单中。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的创建新日志组。
如果您在控制台之外使用 CloudWatch 操作创建或使用 CloudWatch 日志组作为目标,请确保正确设置权限。如果您使用控制台将日志组添加到 EventBridge 规则,则该日志组的基于资源的策略会自动更新。但是,如果您使用 Amazon Command Line Interface 或 Amazon SDK 来指定日志组,则必须更新该日志组的基于资源的策略。以下示例策略说明了您必须在日志组的基于资源的策略中定义的权限:
您无法使用控制台为日志组配置基于资源的策略。要向基于资源的策略添加所需的权限,请使用 CloudWatch PutResourcePolicy API 操作。然后,您可以使用 describe-resource-policies
为资源事件创建规则并指定 CloudWatch 日志组目标
访问 https://console.aws.amazon.com/events/,打开 Amazon EventBridge 控制台。
-
选择要在其中创建规则的 Amazon Web Services 区域。
-
选择创建规则,然后输入有关该规则的所有信息,例如事件规律或计划详细信息。
有关创建 EventBridge 就绪规则的更多信息,请参阅使用 EventBridge 监控就绪检查资源。
在选择目标页面上,选择 CloudWatch 作为您的目标。
从下拉菜单中选择一个 CloudWatch 日志组。