本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自动对 EC2 实例运行操作以响应中的事件 Amazon Health
您可以自动执行操作,以响应 Amazon EC2 实例的计划事件。当 Amazon Health 向您的 Amazon 账户发送事件时,您的 EventBridge 规则可以调用目标(例如 Automati Amazon Systems Manager on 文档)来代表您自动执行操作。
例如,当为亚马逊 EC2 弹性区块存储 (Amazon EBS) Store EC2 支持的实例安排亚马逊实例停用事件时 Amazon Health ,会将事件类型发送到您的控制AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
面板。 Amazon Health 当规则检测到此事件类型后,您可以自动停止和启动实例。这样,将不必手动执行这些操作。
注意
要自动对您的亚马逊 EC2 实例执行操作,这些实例必须由 Systems Manager 管理。
有关更多信息,请参阅《亚马逊 EC2 EC2 用户指南》 EventBridge中的 “实现亚马逊自动化”。
先决条件
在创建规则之前,您必须创建 Amazon Identity and Access Management (IAM) 策略、创建 IAM 角色并更新该角色的信任策略。
按照此步骤为您的角色创建客户管理型策略。此策略授予角色代表您执行操作的权限。此过程使用 IAM 控制台中的 JSON 策略编辑器。
创建 IAM policy
登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择策略。
-
选择创建策略。
-
选择 JSON 选项卡。
-
复制以下 JSON,然后替换编辑器中的默认 JSON。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstanceStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:*:*:Automation*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::
123456789012
:role/AutomationEVRole
" } ] }-
在
Resource
参数中,在亚马逊资源名称 (ARN) 中,输入您的 Amazon 账户 ID。 -
您也可以替换角色名称或使用默认名称。此示例使用
AutomationEVRole
。
-
-
选择下一步:标签。
-
(可选)您可以使用标签作为键值对将元数据添加到策略。
-
选择 下一步: 审核。
-
在 “查看策略” 页面上,输入名称(例如)
AutomationEVRolePolicy
和可选的描述。 -
查看 Summary(摘要)页面,以查看策略允许的权限。如果您对策略感到满意,请选择 创建策略。
此策略定义角色可以执行的操作。有关更多信息,请参阅《IAM 用户指南》中的创建 IAM policy(控制台)。
创建策略后,您必须创建 IAM 角色,并将策略附加到此角色。
为 Amazon 服务创建角色
登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色,然后选择创建角色。
-
对于Select type of trusted entity(选择受信任实体的类型),选择 Amazon service(服务)。
-
EC2为要允许担任此角色的服务进行选择。
-
选择下一步: 权限。
-
输入您创建的策略名称,例如
AutomationEVRolePolicy
,然后选中策略旁边的复选框。 -
选择下一步:标签。
-
(可选)您可以使用标签作为键值对将元数据添加到角色。
-
选择 下一步: 审核。
-
对于 Role name(角色名称),输入
AutomationEVRole
。此名称必须与您创建的 IAM policy 的 ARN 中显示的名称相同。 -
(可选)对于 Role description(角色描述),输入角色的描述。
-
检查角色,然后选择创建角色。
有关更多信息,请参阅 IAM 用户指南中的为 Amazon 服务创建角色。
最后,您可以更新所创建角色的信任策略。您必须完成此过程,才能在 EventBridge 控制台中选择此角色。
要更新该角色的信任策略
登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色。
-
在您 Amazon 账户中的角色列表中,选择您创建的角色的名称,例如
AutomationEVRole
。 -
选择 信任关系 选项卡,然后选择 编辑信任关系。
-
对于 Policy Document,复制以下 JSON,删除默认策略,然后将复制的 JSON 粘贴到所在位置。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
选择更新信任策略。
有关更多信息,请参阅 IAM 用户指南中的修改角色信任策略(控制台)。
为以下各项创建规则 EventBridge
按照此过程在 EventBridge 控制台中创建规则,以便您可以自动停止和启动计划停用的 EC2 实例。
为 Systems EventBridge Manager 自动操作创建规则
打开 Amazon EventBridge 控制台,网址为https://console.aws.amazon.com/events/
。 -
在导航窗格中的 Events(事件)下,选择 Rules(规则)。
-
在 创建规则页面上,输入规则的 名称 和 描述。
-
在 Define pattern(定义模式)下,选择 Event pattern(事件模式),然后选择 Pre-defined pattern by service(按服务预定义的模式)。
-
对于 Service provider(服务提供商),选择 Amazon。
-
对于 服务名称,选择 运行状况。
-
对于 事件类型,选择 特定运行状况事件。
-
选择 “特定服务”,然后选择EC2。
-
选择 特定事件类型类别,然后选择 scheduledChange。
-
选择 特定事件类型代码,然后选择事件类型代码。
例如,对于 Amazon EC2 EBS 支持的实例,选择。
对于 Amazon EC2 实例存储支持的实例,请选择。AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED
-
选择 Any resource(任何资源)。
您的 事件模式类似于以下示例。
{ "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
-
添加 Systems Manager Automation 文档目标。在 选择目标下,对于 目标,选择 SSM Automation。
-
对于 Document(文档),选择
Amazon-RestartEC2Instance
。 -
展开 配置自动化参数,然后选择 输入转换器。
-
在 输入路径字段中输入
。{"Instances":"$.resources"}
-
对于第二个字段,输入
。{"InstanceId": <Instances>}
-
选择使用现有角色,然后选择您创建的 IAM 角色,例如
AutomationEVRole
。注意
如果您没有具有必需权限和 Systems Manager 权限 EC2 以及可信关系的现有 IAM 角色,则您的角色将不会出现在列表中。有关更多信息,请参阅 先决条件。
-
选择创建。
如果您的账户中发生了符合您规则的事件,则 EventBridge 会将该事件发送给您的指定目标。