监控Amazon Health亚马逊活动EventBridge - Amazon Health
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

监控Amazon Health亚马逊活动EventBridge

你可以使用亚马逊EventBridge检测并做出反应Amazon Health事件。然后,根据你创建的规则,EventBridge当事件与您在规则中指定的值匹配时,调用一个或多个目标操作。根据事件的类型,您可以捕获事件信息、启动其他事件、发送通知、采取纠正措施或执行其他操作。例如,你可以使用Amazon Health如果你有,可以接收电子邮件通知Amazon你的资源Amazon Web Services 账户计划进行更新的实例,例如亚马逊弹性计算云 (Amazon EC2) 实例。

注意
  • Amazon Health在 a 上发布事件尽力而为基础。并不总是能保证将事件传送到 EventBridge。

  • 任何EventBridge您创建的规则只能接收您的通知Amazon Web Services 账户。您无法接收您的其他账户的组织活动Amazon Organizations。有关更多信息,请参阅使用组织视图跨账户聚合 Amazon Health 事件

您可以在多种目标类型之间进行选择EventBridge作为你的一部分Amazon Health工作流程,包括:

  • Amazon Lambda 函数

  • Amazon Kinesis Data Streams

  • Amazon Simple Queue Service (Amazon SQS) 队列

  • 内置目标(例如CloudWatch警报动作)

  • Amazon Simple Notification Service (Amazon SNS) 主题

例如,在出现以下情况时,您可以使用 Lambda 函数向 Slack 频道传递通知Amazon Health事件发生。或者,你可以使用 Lambda 和EventBridge在以下情况下使用 Amazon SNS 发送自定义文本或 SMS 通知Amazon Health事件发生。

关于Amazon Web Services 区域为了Amazon Health

你必须创建一个EventBridge适用于您要接收通知的每个地区的规则Amazon Health事件。如果您不创建规则,则不会收到事件。例如,要接收来自中国(北京)区域的事件,必须为该区域创建规则。

一些Amazon Health事件不是特定于地区的。不特定于某个地区的事件称为全球事件。其中包括发送给的活动Amazon Identity and Access Management(IAM)。要接收全球事件,必须为中国(宁夏)区域创建规则。

关于的公共活动Amazon Health

当你创建EventBridge监控来自的事件的规则Amazon Health,该规则既提供特定账户的事件,也提供公共事件:

  • 特定账户事件会影响您的账户和资源,例如告知您 Amazon EC2 实例所需更新的事件或其他预定变更事件。

  • 公众事件出现在Amazon Health控制面板-服务运行状况。公共活动并非特定于Amazon Web Services 账户并提供有关服务区域可用性的公共信息。

重要

要接收这两种事件类型,您的规则必须使用"source": [ "aws.health"]价值。通配符,例如"source": [ "aws.health*"]将与监视任何事件的模式不匹配。

如果你正在监视公共事件Amazon Web Services 区域,我们建议您创建备份规则。万一某个地区出现服务中断,Amazon Health改为将公共事件信息发送到您的备份规则。

您可以通过以下方式确定某个事件是公共事件还是特定于账户的活动EventBridge,通过使用eventScopeCode参数。活动可以有PUBLICACCOUNT_SPECIFIC要么NONE价值。您也可以根据此参数筛选规则。

示例:亚马逊弹性计算云的公共活动

以下事件显示了美国东部(弗吉尼亚北部)地区的 Amazon EC2 的运行问题。

{ "version": "0", "id": "fd9d4512-1eb0-50f6-0491-d016ae56aef0", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-02-15T10:07:10Z", "region": "us-east-1", "resources": [], "detail": { "eventArn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE", "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "PUBLIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Wed, 15 Feb 2023 22:07:07 GMT", "lastUpdatedTime": "Wed, 15 Feb 2023 22:07:07 GMT", "statusCode": "open", "eventRegion": "us-east-1", "eventDescription": [ { "latestDescription": "We are investigating increased API Error rates and Latencies for Amazon Elastic Compute Cloud in the US-EAST-1 Region.", "language": "en_US" } ] } }

当你创建EventBridge监控来自的事件的规则Amazon Health,该规则既提供特定账户的事件,也提供公共事件。特定账户事件会影响您的账户和资源,例如告知您 Amazon EC2 实例所需更新的事件或其他预定变更事件。

公众事件出现在Amazon Health控制面板-服务运行状况。公共活动并非特定于Amazon Web Services 账户并提供有关服务区域可用性的公共信息...

重要

要接收这两种事件类型,您的规则必须使用"source": [ "aws.health"]价值。通配符,例如"source": [ "aws.health*"]不会监视任何事件。

要确定某个事件是公共事件还是特定账户事件,您也可以使用Amazon Health控制台和DescribeEventDetails操作。您可以使用任一选项返回有关事件的信息,然后确定该事件是公共事件还是特定于您的事件Amazon Web Services 账户。

您可以使用以下选项来确定某个事件是公共事件还是特定于账户的活动:

  • 在Amazon Health控制面板,选择受影响的资源事件选项卡。具有资源的事件特定于您的账户。没有资源的事件是公开的,并不是特定于您的账户。有关更多信息,请参阅开始使用您的初始使用Amazon Health控制面板 — 您的账户状况

  • 使用 Amazon Health API 返回 eventScopeCode 参数。事件可以具有 PUBLICACCOUNT_SPECIFICNONE 值。有关更多信息,请参阅DescribeEventDetails操作在Amazon HealthAPI 参考

你也可以使用Amazon Health服务运行状况仪表板通知工具,用于获取公共事件通知。有关更多信息,请参阅aws-health-tools在GitHub网站。

的事件处理器用于Amazon Health

如果你使用Amazon对您的账户进行事件检测和响应,在您完成 X 操作后,此操作将创建AWSServiceRoleForHealth_EventProcessor自动为您提供与服务相关的角色。

这个角色信任event-processor.health.amazonaws.com担任角色的服务主体。与这个角色相关的是AWSHealth_EventProcessorServiceRolePolicy Amazon托管策略。此策略列出了该角色可以执行的权限,例如调用其他Amazon Web Services为了你。

然后,此角色创建了一个亚马逊EventBridge您的账户中的托管规则。该规则被命名为AWSHealthEventProcessor-DO-NOT-DELETE。此规则是您的账户所需的基础架构,因此EventBridge可以将警报状态更改信息从您的账户传送到Amazon Health。

要了解更多信息,请参阅以下主题:

正在创建EventBridge规则为Amazon Health

你可以创建一个EventBridge获取通知的规则Amazon Health您账户中的事件。在为创建事件规则之前Amazon Health,请执行以下操作:

为 Amazon Health 创建 EventBridge 规则
  1. 打开亚马逊EventBridge控制台在https://console.aws.amazon.com/events/

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的 Region selector (区域选择器)。选择您要追踪的区域Amazon Health事件。

  3. 在导航窗格中,选择 Rules (规则)

  4. 选择 Create rule (创建规则)

  5. Define rule detail(定义规则详细信息)页面上,输入规则名称和描述。

  6. 对于 Event bus(事件总线)和 Rule type(规则类型),保留默认值,然后选择 Next(下一步)。

  7. 建立事件模式页面,用于事件来源,选择Amazon事件和EventBridge合作伙伴活动

  8. 事件模式,对于事件来源,选择Amazon Web Services

  9. 事件模式,对于Amazon Web Service,选择健康

  10. 对于事件类型,请选择以下选项之一。

    • 特定的健康滥用事件— 为其创建规则Amazon Health有这个词的事件Abuse在事件类型名称中。

    • 特定健康事件— 为特定事件创建规则Amazon Web Service,例如亚马逊 EC2。

  11. 你可以选择任何服务要么特定服务。如果您选择特定服务,请选择以下选项之一:

    • 选择任何事件类型类别创建适用于所有事件类型类别的规则。

    • 选择特定事件类型类别然后从列表中选择一个值,例如签发账户通知,或预定变更

    提示
    • 监视全部Amazon Health特定服务的事件,我们建议您选择任何事件类型类别任何资源。这样可以确保您的规则可以监控任何情况Amazon Health您的指定服务的事件,包括任何新的事件类型代码。有关示例规则,请参见所有亚马逊 EC2 事件

    • 您可以创建规则来监控多个服务或事件类型类别。为此,必须手动更新规则的事件模式。有关更多信息,请参阅为多个服务和类别创建规则

  12. 如果您选择了特定的服务和事件类型类别,请为事件类型代码选择以下选项之一。

    • 选择任何事件类型代码创建适用于所有事件类型代码的规则。

    • 选择特定事件类型代码然后从列表中选择一个或多个值。这将创建一个仅适用于特定事件类型代码的规则。例如,如果你选择AWS_EC2_INSTANCE_STOP_SCHEDULEDAWS_EC2_INSTANCE_RETIREMENT_SCHEDULED,您的规则仅适用于在您的账户中发生的这些事件。

  13. 为受影响的资源选择以下选项之一。

    • 选择任何资源创建适用于所有资源的规则。

    • 选择特定资源并输入一个或多个资源的 ID。例如,您可以指定 Amazon EC2 实例 ID,例如i-examplea1b2c3de4,以监视仅影响此资源的事件。

  14. 检查您的规则设置,使其符合您的事件监控要求。

  15. 选择下一步

  16. 选择目标页面,选择您为此规则创建的目标类型,然后配置该类型所需的任何其他选项。例如,您可以将事件发送到 Amazon SQS 队列或 Amazon SNS 主题。

  17. 选择下一步

  18. (可选)在 Configure tags(配置标签)页面上,添加任意标签,然后选择 Next(下一步)。

    • 注意:aws.health 源目前未在中发送标签EventBridge。

  19. Review and create(审查并创建)页面上,审查您的规则设置并确保其符合您的事件监控要求。

  20. 选择 Create rule(创建规则)。

例 :特定亚马逊 EC2 事件的规则

以下示例创建了一条规则,因此EventBridge监视以下内容:

  • 亚马逊 EC2 服务

  • 预定变更事件类型类别

  • 的事件类型代码AWS_EC2_INSTANCE_TERMINATION_SCHEDULEDAWS_EC2_INSTANCE_RETIREMENT_SCHEDULED

  • 具有 ID 的实例i-EXAMPLEa1b2c3de4

为多个服务和类别创建规则

前面过程中的示例向您展示了如何为单个服务和事件类型类别创建规则。您也可以为多个服务和事件类型类别创建规则。这意味着您不必为要监控的每项服务和类别创建单独的规则。为此,必须编辑事件模式,然后手动输入更改。

您可以使用以下任一选项。

为现有规则添加服务和类别
  1. 在EventBridge控制台,在规则页面,选择规则名称。

  2. 在右上角,选择 Edit (编辑)

  3. 选择下一步

  4. 对于事件模式,选择编辑图案,然后在文本字段中输入您的更改。

  5. 选择下一步直到你到达查看和更新页面。

  6. 选择更新规则保存您的更改。

为新规则添加服务和类别
  1. 按照中的步骤操作正在创建EventBridge规则为Amazon Health第 9 步

  2. 与其从列表中选择单个服务或类别,不如对于事件模式,选择编辑图案

  3. 在文本字段中输入您的更改。参见以下内容示例模式作为创建自己的事件模式的模型。

  4. 查看您的事件模式,然后按照中的其余步骤进行操作正在创建EventBridge规则为Amazon Health来创建你的规则。

使用 API 或Amazon Command Line Interface(Amazon CLI)

对于新规则或现有规则,请使用PutRuleAPI 操作或aws events put-rule更新事件模式的命令。举个例子Amazon CLI命令,请参见put-ruleAmazon CLI命令参考

例 示例:多个服务和事件类型类别

以下事件模式创建了用于监视事件的规则issueaccountNotification,以及scheduledChange三人事件类型类别Amazon服务:亚马逊 EC2、亚马逊 EC2 自动扩展和亚马逊 VPC。

{ "detail": { "eventTypeCategory": [ "issue", "accountNotification", "scheduledChange" ], "service": [ "AUTOSCALING", "VPC", "EC2" ] }, "detail-type": [ "AWS Health Event" ], "source": [ "aws.health" ] }

Amazon Health活动Amazon EventBridge纲要

以下是的架构Amazon Health事件。

Amazon Health事件架构

{ "version": "0", "id": "7bf73129-1428-4cd3-a780-95db273d1602", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2016-06-05T06:27:57Z", "region": "region", "resources": [], "detail": { "eventArn": "arn:aws:health:region::event/id", "service": "service", "eventTypeCode": "AWS_service_code", "eventScopeCode": "scopecode", "communicationId": "communicationid", "eventTypeCategory": "category", "startTime": "Wed, 05 Apr 2023 05:01:10 GMT", "endTime": "Wed, 05 Apr 2023 05:30:57 GMT", "lastUpdatedTime": "Mon, 27 Mar 2023 09:01:22 GMT", "statusCode": "open", "eventRegion": "af-south-1", "eventDescription": [{ "language": "lang-code", "latestDescription": "description" }], "eventMetadata": { "keystring1":"valuestring1", "keystring2":"valuestring2", ... } } }

eventTypeCategory

事件的类别代码。可能的值为 issueaccountNotificationscheduledChange

eventTypeCode

事件类型的唯一标识符。示例包括 AWS_EC2_INSTANCE_NETWORK_MAINTENANCE_SCHEDULEDAWS_EC2_INSTANCE_REBOOT_MAINTENANCE_SCHEDULED。通常在 startTime 之前两周左右推送出包含 MAINTENANCE_SCHEDULED 的事件。

eventScopeCode

  • 特定账户事件会影响您的账户和资源,例如告知您 Amazon EC2 实例所需更新的事件或其他预定变更事件

  • 公众事件出现在Amazon Health控制面板-服务运行状况视图

  • 公共活动并非特定于Amazon账户并提供有关服务区域可用性的公共信息。

EventArn

此类事件的唯一健康服务标识符

事件元数据

根据事件的性质,可以选择提供其他元数据。请注意,为给定对象使用元数据EventType可能会随着时间的推移而发生变化,因此客户在使用时应谨慎行事EventBridge规则或编程逻辑。

通信 ID

健康事件给定更新的唯一健康服务标识符。例如,当向健康事件添加新措辞时,CommunicationID 将在所有事件中保持一致Amazon接收更新的账户。如果出现这种情况,您可以使用此字段来消除通信中的重复数据。

Id

这个EventBridge每个标识符都是唯一的EventBridge事件。与Communication ID不同,同一健康事件更新的不同账户之间不会保持一致。

service

这个Amazon服务受事件影响。例如,EC2S3REDSHIFT,或RDS

亚马逊 EC2 操作问题

{ "version": "0", "id": "7bf73129-1428-4cd3-a780-95db273d1602", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-01-27T09:01:22Z", "region": "af-south-1", "resources": [], "detail": { "eventArn": "arn:aws:health:af-south-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_7f35c8ae-af1f-54e6-a526-d0179ed6d68f", "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "PUBLIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Fri, 27 Jan 2023 06:02:51 GMT", "endTime": "Fri, 27 Jan 2023 09:01:22 GMT", "lastUpdatedTime": "Fri, 27 Jan 2023 09:01:22 GMT", "statusCode": "open", "eventRegion": "af-south-1", "eventDescription": [{ "language": "en_US", "latestDescription": "Current severity level: Operating normally\n\n[RESOLVED] \n\n [03:15 PM PST] We continue see recovery \n\nThe following AWS services were previously impacted but are now operating normally: APPSYNC, BACKUP, EVENTS." }] "affectedEntities":[] } }

Elastic Load Balancing API 问题

{ "version": "0", "id": "121345678-1234-1234-1234-123456789012", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2022-06-10T06:27:57Z", "region": "ap-southeast-2", "resources": [], "detail": { "eventArn": "arn:aws:health:ap-southeast-2::event/AWS_ELASTICLOADBALANCING_API_ISSUE_90353408594353980", "service": "ELASTICLOADBALANCING", "eventTypeCode": "AWS_ELASTICLOADBALANCING_API_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Fri, 10 Jun 2022 05:01:10 GMT", "endTime": "Fri, 10 Jun 2022 05:30:57 GMT", "statusCode": "open", "eventRegion": "ap-southeast-2", "eventDescription": [{ "language": "en_US", "latestDescription": "A description of the event will be provided here" }] } }

Amazon EC2 实例存储驱动器性能下降

{ "version": "0", "id": "121345678-1234-1234-1234-123456789012", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2022-06-03T06:27:57Z", "region": "us-west-2", "resources": [ "i-abcd1111" ], "detail": { "eventArn": "arn:aws:health:us-west-2::event/AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED_90353408594353980", "service": "EC2", "eventTypeCode": "AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED", "eventTypeCategory": "issue", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Fri, 3 Jun 2022 05:01:10 GMT", "endTime": "Fri, 3 Jun 2022 05:30:57 GMT", "statusCode": "open", "eventRegion": "us-west-2", "eventDescription": [{ "language": "en_US", "latestDescription": "A description of the event will be provided here" }], "affectedEntities": [{ "entityValue": "i-abcd1111", }] } }

接收Amazon Health与... 相关的活动Amazon Chatbot

你可以收到Amazon Health直接在您的聊天客户端中使用事件,例如 Slack 和亚马逊 Chime。您可以使用此事件来识别最近的Amazon可能会影响您的服务问题Amazon应用程序和基础架构。然后,你可以登录到你的Amazon Health仪表板以了解有关更新的更多信息。例如,如果你正在监控AWS_EC2_INSTANCE_STOP_SCHEDULED您的活动类型Amazon账户,Amazon Health事件可以直接出现在你的 Slack 频道上。

先决条件

在开始之前,你必须具备以下条件:

  • 聊天客户端配置为Amazon Chatbot。你可以配置亚马逊 Chime 和 Slack。有关更多信息,请参见入门Amazon ChatbotAmazon Chatbot管理员指南

  • 您创建并订阅的 Amazon SNS 主题。如果您已经有一个 SNS 主题,则可以使用现有主题。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南中的 Amazon SNS 入门

要接收Amazon Health与... 相关的活动Amazon Chatbot
  1. 按照中的步骤操作正在创建EventBridge规则为Amazon Health完成步骤 13。

    按照中的步骤操作正在创建EventBridge规则为Amazon Health完成步骤 13。

    1. 当你在中选择目标时第 14 步,选择一个 SNS 主题。您将在中使用相同的 SNS 主题Amazon Chatbot控制台。

    2. 完成剩余步骤以创建规则。

  2. 导航到 Amazon Chatbot 控制台

  3. 选择您的聊天客户端,例如您的 Slack 频道名称,然后选择编辑

  4. 通知-可选部分,用于话题,选择您在步骤 1 中指定的相同 SNS 主题。

  5. 选择保存

    什么时候Amazon Health将事件发送到EventBridge符合你的规则,Amazon Health事件将出现在您的聊天客户端中。

  6. 选择活动名称以查看您的更多信息Amazon Health仪表板。

自动执行 Amazon EC2 实例的操作

您可以自动执行响应 Amazon EC2 实例的预定事件的操作。什么时候Amazon Health向您发送事件Amazon账户,你的EventBridge然后规则可以调用目标,例如Amazon Systems Manager自动化文档,用于代表您自动执行操作。

例如,当为由亚马逊弹性区块存储 (Amazon EBS) 支持的 EC2 实例安排 Amazon EC2 实例停用活动时,Amazon Health会发送AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED您的事件类型Amazon Health仪表板。当您的规则检测到此事件类型时,您可以自动停止和启动实例。这样,你就不必手动执行这些操作了。

注意

要自动执行您的 Amazon EC2 实例的操作,必须由系统管理器管理这些实例。

有关更多信息,请参见使用 Amazon EC2 实现自动化EventBridge适用于 Linux 实例的亚马逊 EC2 用户指南

先决条件

你必须创建一个Amazon Identity and Access Management(IAM) 策略,创建 IAM 角色并更新该角色的信任策略,然后才能创建规则。

按照此步骤为您的角色创建客户管理型策略。此策略授予角色代表您执行操作的权限。此过程使用 IAM 控制台中的 JSON 策略编辑器。

创建 IAM policy
  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies (策略)

  3. 选择创建策略

  4. 请选择 JSON 选项卡。

  5. 复制以下 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" } ] }
    1. Resource参数,对于亚马逊资源名称 (ARN),输入您的Amazon账号 ID。

    2. 您也可以替换角色名称或使用默认名称。这个例子使用自动化 evRole

  6. 请选择下一步:标签

  7. (可选)您可以使用标签作为键值对将元数据添加到策略。

  8. 选择 Next: Review(下一步: 审核)

  9. 查看政策页面,输入姓名,比如自动化电动汽车RolePolicy还有一个可选的描述

  10. 查看摘要页面查看策略允许的权限。如果您对自己的政策感到满意,请选择创建策略

此策略定义角色可以执行的操作。有关更多信息,请参阅《IAM 用户指南》中的创建 IAM policy(控制台)

创建策略后,您必须创建 IAM 角色,并将策略附加到此角色。

为某人创建角色Amazon服务
  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色,然后选择创建角色

  3. 对于Select type of trusted entity(选择受信任实体的类型),选择 Amazon service(服务)

  4. 选择EC2适用于您希望允许代入此角色的服务。

  5. 选择Next: Permissions(下一步: 权限)

  6. 输入您创建的策略名称,例如自动化电动汽车RolePolicy,然后选中策略旁边的复选框。

  7. 请选择下一步:标签

  8. (可选)您可以使用标签作为键值对将元数据添加到角色。

  9. 选择 Next: Review(下一步: 审核)

  10. 对于角色名称,输入自动化 evRole。此名称必须与您创建的 IAM 策略的 ARN 中显示的名称相同。

  11. (可选)对于 Role description(角色描述),输入角色的描述。

  12. 检查角色,然后选择 Create role

有关更多信息,请参阅《IAM 用户指南》中的创建用于 Amazon 服务的角色

最后,您可以更新所创建角色的信任策略。您必须完成此过程才能在中选择此角色EventBridge控制台。

更新角色的信任策略
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 在你的角色列表中Amazon帐户,选择您创建的角色的名称,例如自动化 evRole

  4. 选择 Trust relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系)

  5. 对于政策文件,复制以下 JSON,删除默认策略,然后将复制的 JSON 粘贴到原处。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 选择 Update Trust Policy(更新信任策略)。

有关更多信息,请参见修改角色信任策略(控制台)IAM 用户指南

为其创建规则EventBridge

按照以下步骤在中创建规则EventBridge控制台,这样您就可以自动停止和启动计划停用的 EC2 实例。

为创建规则EventBridge用于系统管理器自动操作
  1. 打开亚马逊EventBridge控制台在https://console.aws.amazon.com/events/

  2. 在导航窗格中的事件下,选择规则

  3. 创建规则页面,输入姓名描述为了你的规则。

  4. Define pattern(定义模式)下,选择 Event pattern(事件模式),然后选择 Pre-defined pattern by service(按服务预定义的模式)。

  5. 对于 Service provider(服务提供商),选择 Amazon

  6. 对于服务名称,选择健康

  7. 对于事件类型,选择特定健康事件

  8. 选择特定服务然后选择EC2

  9. 选择特定事件类型类别然后选择预定变更

  10. 选择特定事件类型代码然后选择事件类型代码。

    例如,对于由 EBS 支持的 Amazon EC2 实例,选择AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED。对于由 Amazon EC2 实例存储支持的实例,请选择AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED

  11. 选择 Any resource(任何资源)

    你的事件模式将类似于以下示例。

    { "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
  12. 添加系统管理器自动化文档目标。下选择目标,对于目标,选择SSM 自动化

  13. 对于文档,选择 Amazon-RestartEC2Instance

  14. 扩展配置自动化参数然后选择输入变压器

  15. 对于输入路径字段,输入{"Instances":"$.resources"}

  16. 对于第二个字段,输入{"InstanceId": <Instances>}

  17. 选择使用现有角色,然后选择您创建的 IAM 角色,例如自动化 evRole

    注意

    如果您现有的 IAM 角色不具有所需的 EC2 和 Systems Manager 权限和可信关系,则您的角色不会出现在列表中。有关更多信息,请参阅先决条件

  18. 选择创建

    如果您的账户中发生与您的规则相匹配的事件,EventBridge会将事件发送到您的指定目标。