Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

教程:发送任务已停止事件的 Amazon Simple Notification Service 警报

在本教程中,您配置一个 CloudWatch Events 事件规则,此规则仅捕获其中的任务因某个主要容器终止而停止的任务事件。事件仅将具有特定 stoppedReason 属性的任务事件发送到指定的 Amazon SNS 主题。

步骤 1:设置测试集群

如果您没有要从中捕获事件的正在运行的集群,请执行 开始使用 Amazon ECS中的步骤来创建一个集群。在本教程结束时,您在此集群上运行一个任务来测试您是否已正确配置 Amazon SNS 主题和 CloudWatch Events 事件规则。

步骤 2:创建并订阅 Amazon SNS 主题

在本教程中,您配置一个 Amazon SNS 主题来充当新事件规则的事件目标。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v2/home

  2. 选择 TopicsCreate new topic

  3. Create new topic 窗口上,为 Topic name 输入 TaskStoppedAlert,并选择 Create topic

  4. Topics 窗口上,选择刚刚创建的主题。在 Topic details: TaskStoppedAlert 屏幕上,选择 Create subscription

  5. Create Subscription 窗口上,为 Protocol 选择 Email。对于 Endpoint,输入您当前有权访问的电子邮件地址,然后选择 Create subscription

  6. 检查您的电子邮件账户,并等待接收订阅确认电子邮件。在收到此电子邮件后,选择 Confirm subscription

步骤 3:注册事件规则

接下来,您注册一个事件规则,此规则仅捕获具有已停止容器的任务的任务已停止事件。

创建事件规则

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格上,选择 EventsCreate rule

  3. 选择 Show advanced optionsedit

  4. 对于 Build a pattern that selects events for processing by your targets,将现有文本替换为以下文本:

    Copy
    { "source": [ "aws.ecs" ], "detail-type": [ "ECS Task State Change" ], "detail": { "lastStatus": [ "STOPPED" ], "stoppedReason" : [ "Essential container in task exited" ] } }

    此代码定义一个 CloudWatch Events 事件规则,此规则匹配其中的 lastStatusstoppedReason 字段均匹配所指示值的任何事件。有关事件模式的更多信息,请参阅 Amazon CloudWatch 用户指南 中的事件和事件模式

  5. 对于 Targets,选择 Add target。对于 Target type,选择 SNS topic,然后选择 TaskStoppedAlert

  6. 选择 Configure details

  7. 对于 Rule definition,键入规则的名称和说明,然后选择 Create rule

步骤 4:测试您的规则

要测试您的规则,可尝试运行在启动后快速退出的任务。如果您的事件规则配置正确,您将在几分钟内收到包含事件文本的电子邮件。

测试规则

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 选择 Task DefinitionsCreate new Task Definition

  3. 对于 Task Definition Name,键入 WordPressFailure 并选择 Add Container

  4. 对于 Container name,键入 Wordpress;对于 Image,键入 wordpress;对于 Maximum memory (MB),键入 128

  5. 选择 AddCreate

  6. Task Definition 屏幕上,选择 ActionsRun Task

  7. 对于 Cluster,选择 default,然后选择 Run Task

  8. 在集群的 Tasks 选项卡上,定期选择刷新图标,直到您不再看到任务正在运行。对于 Desired task status,选择 Stopped 以验证任务是否已停止。

  9. 查看您的电子邮件以确认您已收到已停止通知的电子邮件警报。