教程:针对作业失败事件发送 Amazon Simple Notification Service 警报 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:针对作业失败事件发送 Amazon Simple Notification Service 警报

在本教程中,您将配置一条 EventBridge 事件规则,该规则仅捕获作业已变为FAILED状态的作业事件。在本教程结束时,您还可以选择向该作业队列提交作业。这是为了测试您是否正确配置了您的 Amazon SNS 提醒。

先决条件

本教程假定您具备可正常工作的计算环境和作业队列,随时可以接受作业。如果您没有要从中捕获事件的正在运行的计算环境和作业队列,请执行入门 Amazon Batch中的步骤创建一个。

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

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

创建 Amazon SNS 主题
  1. 通过 https://console.aws.amazon.com/sns/v3/home 打开 Amazon SNS 控制台。

  2. 依次选择 Topics (主题)Create topic (创建主题)

  3. 对于类型,选择标准

  4. 对于名称,输入 JobFailedAlert 并选择创建主题

  5. JobFailedAlert屏幕上,选择创建订阅

  6. 对于协议,选择电子邮件

  7. 对于端点,输入您当前有权访问的电子邮件地址,然后选择 创建订阅

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

步骤 2:注册事件规则

接下来,注册一个仅捕获作业失败事件的事件规则。

注册您的 EventBridge 规则
  1. 打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/

  2. 在导航窗格中,选择规则

  3. 选择创建规则

  4. 为规则输入名称和描述。

    规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。

  5. 对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择 Amazon 默认事件总线。当你账户中的某项 Amazon 服务发出事件时,它总是会进入你账户的默认事件总线。

  6. 对于规则类型,选择具有事件模式的规则

  7. 选择下一步

  8. 对于事件源,选择其他

  9. 对于事件模式,选择 自定义模式(JSON 编辑器)

  10. 在文本区域中粘贴以下事件模式。

    { "detail-type": [ "Batch Job State Change" ], "source": [ "aws.batch" ], "detail": { "status": [ "FAILED" ] } }

    此代码定义了一 EventBridge 条规则,该规则与任务状态为的任何事件相匹配FAILED。有关事件模式的更多信息,请参阅 Amazon EventBridge 用户指南中的事件和事件模式

  11. 选择 Next(下一步)

  12. 对于目标类型,选择Amazon 服务

  13. 在 “选择目标” 中,选择 SNS 主题,在 “主题” 中选择JobFailedAlert

  14. (可选)对于 Additional settings(其他设置),执行以下操作:

    1. 对于 Maximum age of event(事件的最大时长),输入一分钟(00:01)与 24 小时(24:00)之间的值。

    2. 对于重试尝试,输入 0 到 185 之间的数字。

    3. 对于死信队列,选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标,则将其发送到死信队列。请执行以下操作之一:

      • 选择不使用死信队列。

      • 在当前 Amazon 账户中选择要用作死信队列的 Amazon SQS 队列,然后从下拉列表中选择要使用的队列。

      • 选择选择其他 Amazon 账户中的 Amazon SQS 队列作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予向该队列发送消息的 EventBridge 权限。有关更多信息,请参阅 A mazon EventBridge 用户指南中的向死信队列授予权限

  15. 选择 Next(下一步)

  16. (可选)为规则输入一个或多个标签。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 标签

  17. 选择下一步

  18. 查看规则详细信息并选择创建规则

步骤 3:测试您的规则

要测试您的规则,请提交一个在启动后很快就以非零退出代码退出的作业。如果您的事件规则配置正确,您将在几分钟内收到包含事件文本的电子邮件消息。

测试规则
  1. 打开 Amazon Batch 控制台,网址为 https://console.aws.amazon.com/batch/

  2. 提交一份新 Amazon Batch 工作。有关更多信息,请参阅 提交作业。对于作业的命令,替换为以下命令,以退出代码 1 退出容器。

    /bin/sh, -c, 'exit 1'
  3. 查看您的电子邮件以确认您已收到失败作业通知的电子邮件提醒。

替代规则:Batch Job 队列已阻止

要创建监控 B atch Job Queue Bloc ked 的事件规则,请重复本教程中的步骤,并进行以下更改:

  1. 在步骤 1 中,使用BlockedJobQueue作为主题名称。

  2. 在步骤 2 中,在 JSON 编辑器中使用以下模式:

    { "detail-type": [ "Batch Job Queue Blocked" ], "source": [ "aws.batch" ] }