本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:针对作业失败事件发送 Amazon Simple Notification Service 警报
在本教程中,您将配置一条 EventBridge 事件规则,该规则仅捕获作业已变为FAILED
状态的作业事件。在本教程结束时,您还可以选择向该作业队列提交作业。这是为了测试您是否正确配置了您的 Amazon SNS 提醒。
先决条件
本教程假定您具备可正常工作的计算环境和作业队列,随时可以接受作业。如果您没有要从中捕获事件的正在运行的计算环境和作业队列,请执行入门 Amazon Batch中的步骤创建一个。
步骤 1:创建并订阅 Amazon SNS 主题
在本教程中,您配置一个 Amazon SNS 主题来充当新事件规则的事件目标。
创建 Amazon SNS 主题
通过 https://console.aws.amazon.com/sns/v3/home
打开 Amazon SNS 控制台。 -
依次选择 Topics (主题) 和 Create topic (创建主题)。
-
对于类型,选择标准。
-
对于名称,输入
JobFailedAlert
并选择创建主题。 -
在JobFailedAlert屏幕上,选择创建订阅。
-
对于协议,选择电子邮件。
-
对于端点,输入您当前有权访问的电子邮件地址,然后选择 创建订阅。
-
检查您的电子邮件账户,并等待接收订阅确认电子邮件。在收到此电子邮件后,选择 确认订阅。
步骤 2:注册事件规则
接下来,注册一个仅捕获作业失败事件的事件规则。
注册您的 EventBridge 规则
打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/
。 -
在导航窗格中,选择规则。
-
选择创建规则。
-
为规则输入名称和描述。
规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。
-
对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择 Amazon 默认事件总线。当你账户中的某项 Amazon 服务发出事件时,它总是会进入你账户的默认事件总线。
-
对于规则类型,选择具有事件模式的规则。
-
选择下一步。
-
对于事件源,选择其他。
-
对于事件模式,选择 自定义模式(JSON 编辑器)。
-
在文本区域中粘贴以下事件模式。
{ "detail-type": [ "Batch Job State Change" ], "source": [ "aws.batch" ], "detail": { "status": [ "FAILED" ] } }
此代码定义了一 EventBridge 条规则,该规则与任务状态为的任何事件相匹配
FAILED
。有关事件模式的更多信息,请参阅 Amazon EventBridge 用户指南中的事件和事件模式。 -
选择 Next(下一步)。
-
对于目标类型,选择Amazon 服务。
-
在 “选择目标” 中,选择 SNS 主题,在 “主题” 中选择JobFailedAlert。
-
(可选)对于 Additional settings(其他设置),执行以下操作:
-
对于 Maximum age of event(事件的最大时长),输入一分钟(00:01)与 24 小时(24:00)之间的值。
-
对于重试尝试,输入 0 到 185 之间的数字。
-
对于死信队列,选择是否使用标准的 Amazon SQS 队列作为死信队列。 EventBridge 如果匹配此规则的事件未成功传送到目标,则将其发送到死信队列。请执行以下操作之一:
-
选择无不使用死信队列。
-
在当前 Amazon 账户中选择要用作死信队列的 Amazon SQS 队列,然后从下拉列表中选择要使用的队列。
-
选择选择其他 Amazon 账户中的 Amazon SQS 队列作为死信队列,然后输入要使用的队列的 ARN。您必须将基于资源的策略附加到队列,以授予向该队列发送消息的 EventBridge 权限。有关更多信息,请参阅 A mazon EventBridge 用户指南中的向死信队列授予权限。
-
-
-
选择 Next(下一步)。
-
(可选)为规则输入一个或多个标签。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 标签。
-
选择下一步。
-
查看规则详细信息并选择创建规则。
步骤 3:测试您的规则
要测试您的规则,请提交一个在启动后很快就以非零退出代码退出的作业。如果您的事件规则配置正确,您将在几分钟内收到包含事件文本的电子邮件消息。
测试规则
打开 Amazon Batch 控制台,网址为 https://console.aws.amazon.com/batch/
。 -
提交一份新 Amazon Batch 工作。有关更多信息,请参阅 提交作业。对于作业的命令,替换为以下命令,以退出代码 1 退出容器。
/bin/sh, -c, 'exit 1'
-
查看您的电子邮件以确认您已收到失败作业通知的电子邮件提醒。
替代规则:Batch Job 队列已阻止
要创建监控 B atch Job Queue Bloc ked 的事件规则,请重复本教程中的步骤,并进行以下更改:
在步骤 1 中,使用
BlockedJobQueue
作为主题名称。在步骤 2 中,在 JSON 编辑器中使用以下模式:
{ "detail-type": [ "Batch Job Queue Blocked" ], "source": [ "aws.batch" ] }