配置 Automation 以监控 CloudWatch 警报
可配置 Automation 运行手册执行以监控 CloudWatch 警报。如果指定的警报进入 ALARM 状态,Automation 将停止执行。对于使用速率控制模式或跨多个账户运行的执行,Automation 将取消所有待处理的执行。如果在运行手册中定义了 onCancel 步骤,这些步骤将在执行结束之前运行。当监控的资源运行状况不佳时,这可以防止运行手册继续运行。
开始前的准备工作
在配置 CloudWatch 警报监控之前,请先满足以下先决条件:
-
创建 CloudWatch 警报:创建警报,监控受 Automation 执行影响的资源。有关更多信息,请参阅使用 Amazon CloudWatch 警报。
-
配置执行身份权限:Automation 使用的执行身份必须具有以下权限才能使 CloudWatch 警报监控正常运行:
-
cloudwatch:DescribeAlarms:监控警报状态所必需。 -
ssm:StopAutomationExecution:警报激活时停止执行所必需。
执行身份由 Automation 运行手册的
assumeRole字段中指定的 IAM 角色 ARN 确定。如果未指定assumeRole值,则运行手册将使用调用StartAutomationExecution的 IAM 主体的身份执行。 -
以下示例显示授予 CloudWatch 警报监控所需权限的最低限度 IAM 策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "ssm:StopAutomationExecution" ], "Resource": "*" } ] }
配置警报监控(控制台)
通过 Systems Manager 控制台启动自动化操作时,使用以下流程配置 CloudWatch 警报监控。
配置警报监控
访问 https://console.aws.amazon.com/systems-manager/
-
在导航窗格中,选择 自动化。
-
选择执行自动化。
-
选择运行手册并为执行配置输入参数。
-
在 CloudWatch 警报部分,选择要在执行期间监控的警报。
-
(可选)切换警报状态不可用时继续自动化,以控制 Automation 无法检索警报状态时的行为。启用后,即使无法确定警报状态,执行也将继续运行。禁用(默认)后,如果无法检索警报状态,执行将停止。
-
选择执行。
配置警报监控(Amazon CLI)
使用带 aws ssm
start-automation-execution 命令的 --alarm-configuration 参数,指定要监控的 CloudWatch 警报。
--alarm-configuration 参数接受具有以下字段的 JSON 结构:
-
Alarms(必填):警报对象,Name字段用于标识要监控的 CloudWatch 警报。 -
IgnorePollAlarmFailure(可选,布尔值):控制 Automation 无法检索警报状态时的行为。设置为false(默认)在无法确定警报状态时停止执行,或者设置为true在任何情况下都继续执行。
以下示例启动了一个自动化操作,用于监控名为 my-alarm 的 CloudWatch 警报。由于 IgnorePollAlarmFailure 设置为 false,因此如果无法检索警报状态,则 Automated 将停止:
aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters '{"InstanceId":["i-02573cafcfEXAMPLE"]}' \ --alarm-configuration '{"IgnorePollAlarmFailure":false,"Alarms":[{"Name":"my-alarm"}]}'
跨账户和跨区域警报监控
对于跨多个账户和区域运行的自动化操作,您可以使用 TargetLocations 中的 TargetLocationAlarmConfiguration 字段,为每个目标位置配置警报监控。每个目标账户中的执行角色(例如 AWS-SystemsManager-AutomationExecutionRole)必须拥有 cloudwatch:DescribeAlarms 和 ssm:StopAutomationExecution 权限。
有关设置跨账户角色的更多信息,请参阅设置进行多区域和多账户自动化的管理账户权限。