Amazon Batch 以就业为 EventBridge 目标 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Batch 以就业为 EventBridge 目标

亚马逊 EventBridge提供了近乎实时的系统事件流,这些事件描述了亚马逊 Web Services 资源的变化。通常, Amazon Batch 在亚马逊弹性容器服务上,亚马逊 Elastic Kubernetes Service Amazon 和 Fargate 作业可作为目标使用。 EventBridge 使用简单的规则,您可以匹配事件并根据事件提交 Amazon Batch 作业。有关更多信息,请参阅什么是 EventBridge? 在《亚马逊 EventBridge 用户指南》中。

您还可以使用cron或评分表达式 EventBridge 来安排在特定时间调用的自动操作。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的创建按计划运行的亚马逊 EventBridge 规则

有关如何创建在事件与事件模式匹配时运行的规则的信息,请参阅 EventBridge 《亚马逊 EventBridge 用户指南》中的创建对事件做出反应的 Amazon 规则

以 Amazon Batch 作业为 EventBridge 目标的常见用例包括以下用例:

  • 计划的作业以固定的时间间隔出现。例如,只有在 Amazon EC2 竞价型实例价格较低时,cron 作业才会在使用率低的时段出现。

  • Amazon Batch 作业是为了响应已登录的 API 操作而运行的 CloudTrail。例如,只要将对象上传到指定的 Amazon S3 存储桶,就会提交作业。每次发生这种情况时, EventBridge 输入转换器都会将对象的存储桶和密钥名称传递给 Amazon Batch 参数。

    注意

    在这种情况下,所有相关 Amazon 资源都必须位于同一个区域。这包括 Amazon S3 存储桶、 EventBridge 规则和 CloudTrail 日志等资源。

在提交带有 EventBridge 规则和目标的 Amazon Batch 作业之前,该 EventBridge 服务需要多个权限才能运行 Amazon Batch 作业。在 EventBridge 控制台中创建将 Amazon Batch 任务指定为目标的规则时,也可以创建此角色。有关此角色所需的服务委托人和 IAM 权限的更多信息,请参阅 EventBridge IAM 角色

创建计划 Amazon Batch 作业

以下过程介绍如何创建计划 Amazon Batch 任务和所需的 EventBridge IAM 角色。

使用创建计划 Amazon Batch 作业 EventBridge
注意

此过程适用于所有亚马逊 ECS、Amaz Amazon Batch on EKS 和 Amazon Fargate 任务。

  1. 打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/

  2. 在导航栏中,选择 Amazon Web Services 区域 要使用的。

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

  4. 选择创建规则

  5. 对于名称,为计算环境指定唯一名称。名称最多可以包含 64 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

    注意

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

  6. (可选)对于描述,输入规则的描述。

  7. 对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择默认。当你账户 Amazon Web Service 中的某人发出事件时,它总是会转到你账户的默认事件总线。

  8. (可选)如果您不想立即运行所选总线上的规则,请关闭该规则。

  9. 对于 Rule type(规则类型),选择 Schedule(计划)。

  10. 选择继续创建规则,或者选择下一步

  11. 对于 Schedule pattern(计划模式),执行以下操作之一:

    • 选择在特定时间(例如上午 8:00)运行的精细计划。每月第一个星期一,太平洋标准时间,然后输入 cron 表达式。有关更多信息,请参阅 Amazon EventBridge 用户指南中的 Cron 表达式

    • 选择以常规速率运行的计划,例如每 10 分钟,然后输入 rate 表达式。

  12. 选择下一步

  13. 对于 Target types(目标类型),选择 Amazon Web Service

  14. 选择目标中,选择批处理作业队列。然后,进行以下配置:

    • Job queue(作业队列):输入您在其中计划作业的作业队列的 Amazon 资源名称(ARN)。

    • Job definition (任务定义):输入要用于任务的任务定义的名称和版本或完整 ARN。

    • Job name (任务名称):输入您的任务的名称。

    • Array size (数组大小):(可选) 输入要运行多个副本的任务的数组大小。有关更多信息,请参阅 数组作业

    • Job attempts (任务尝试次数):(可选) 输入任务失败时重试的次数。有关更多信息,请参阅 自动作业重试

  15. 对于 Batch 作业队列目标类型, EventBridge 需要向目标发送事件的权限。 EventBridge 可以创建规则运行所需的 IAM 角色。请执行以下操作之一:

    • 要自动创建 IAM 角色,请选择为此特定资源创建新角色

    • 要使用您已经创建的 IAM 角色,请选择 使用现有角色

  16. (可选)展开 Additional settings (其他设置)

    1. 配置目标输入中,选择如何处理事件中的文本,然后再将其传递到目标。

    2. 对于事件的最大期限,请指定未处理事件保留多长时间的时间间隔。

    3. 对于重试次数,请输入事件的重试次数。

    4. 对于死信队列,选择一个选项来说明如何处理未处理的事件。如有必要,指定要用作死信队列的 Amazon SQS 队列。

  17. (可选)选择 Add another target(添加其他目标),以为此规则添加其他目标。

  18. 选择下一步

  19. (可选)在标签中,选择添加新标签以为规则添加资源标签。有关更多信息,请参阅 Amazon EventBridge 标签

  20. 选择下一步

  21. 对于查看和创建,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择 Create(创建)。

有关创建规则的更多信息,请参阅《亚马逊 EventBridge 用户指南》中的创建按计划运行的亚马逊 EventBridge 规则

创建具有事件模式的规则

以下过程介绍如何使用事件模式创建规则。

创建在事件与定义的模式匹配时将事件发送到目标的规则
注意

此过程适用于所有亚马逊 ECS、Amaz Amazon Batch on EKS 和 Amazon Fargate 任务。

  1. 打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/

  2. 在导航栏中,选择 Amazon Web Services 区域 要使用的。

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

  4. 选择创建规则

  5. 对于名称,为计算环境指定唯一名称。名称最多可以包含 64 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

    注意

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

  6. (可选)对于描述,输入规则的描述。

  7. 对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择默认。当你账户 Amazon Web Service 中的某人发出事件时,它总是会转到你账户的默认事件总线。

  8. (可选)如果您不想立即运行所选总线上的规则,请关闭该规则。

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

  10. 选择下一步

  11. 在 “事件来源” 中,选择Amazon 事件或 EventBridge 合作伙伴事件

  12. (可选)对于示例事件

    1. 对于示例事件类型,选择Amazon 事件

    2. 对于示例事件,选择批处理作业状态更改

  13. 对于创建方法,选择使用模式表单

  14. 对于事件模式

    1. 对于事件源,选择 Amazon Web Services

    2. 对于 Amazon Web Service,选择批处理

    3. 对于事件类型,选择批量作业状态更改

  15. 选择下一步

  16. 对于 Target types(目标类型),选择 Amazon Web Service

  17. 选择目标中,选择目标类型。例如,选择批处理作业队列。然后指定以下内容:

    • Job queue(作业队列):输入您在其中计划作业的作业队列的 Amazon 资源名称(ARN)。

    • Job definition (任务定义):输入要用于任务的任务定义的名称和版本或完整 ARN。

    • Job name (任务名称):输入您的任务的名称。

    • Array size (数组大小):(可选) 输入要运行多个副本的任务的数组大小。有关更多信息,请参阅 数组作业

    • Job attempts (任务尝试次数):(可选) 输入任务失败时重试的次数。有关更多信息,请参阅 自动作业重试

  18. 对于 Batch 作业队列目标类型, EventBridge 需要向目标发送事件的权限。 EventBridge 可以创建规则运行所需的 IAM 角色。请执行以下操作之一:

    • 要自动创建 IAM 角色,请选择为此特定资源创建新角色

    • 要使用您之前创建的 IAM 角色,请选择使用现有角色

  19. (可选)展开 Additional settings (其他设置)

    1. 配置目标输入中,选择如何处理事件中的文本。

    2. 对于事件的最大期限,请指定未处理事件保留多长时间的时间间隔。

    3. 对于重试次数,请输入事件的重试次数。

    4. 对于死信队列,选择一个选项来说明如何处理未处理的事件。如有必要,指定要用作死信队列的 Amazon SQS 队列。

  20. (可选)选择 添加其他目标,以添加其他目标。

  21. 选择下一步

  22. (可选)在标签中,选择添加新标签以添加资源标签。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 标签

  23. 选择下一步

  24. 对于查看和创建,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择 创建规则

    有关创建规则的更多信息,请参阅《亚马逊 EventBridge 用户指南》中的创建对事件做出反应的 Amazon EventBridge 规则

使用 EventBridge 输入变压器按计划将事件信息传递给 T Amazon Batch arget

在作业提交中,您可以使用 EventBridge 输入转换器将 Amazon Batch 事件信息传递给。如果您因其他 Amazon 事件信息而调用作业,则这可能特别有用。例如,将文件元上载到 Amazon S3 存储桶。您还可以在容器的命令中使用带有参数替换值的作业定义。 EventBridge 输入变压器可以根据事件数据提供参数值。

然后,您创建一个 Amazon Batch 事件目标,该目标解析启动它的事件中的信息并将其转换为对象。parameters运行作业时,触发事件中的参数将传递至作业容器的命令。

注意

在这种情况下,所有 Amazon 资源(例如 Amazon S3 存储桶、 EventBridge 规则和 CloudTrail日志)必须位于同一个区域。

创建使用输入变压器的 Amazon Batch 目标
  1. 打开亚马逊 EventBridge 控制台,网址为 https://console.aws.amazon.com/events/

  2. 在导航栏中,选择 Amazon Web Services 区域 要使用的。

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

  4. 选择创建规则

  5. 对于名称,为计算环境指定唯一名称。名称最多可以包含 64 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

    注意

    一条规则不能与同一事件总线上的另一条规则同名。 Amazon Web Services 区域

  6. (可选)对于描述,输入规则的描述。

  7. 对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择默认。当你账户 Amazon Web Service 中的某人发出事件时,它总是会转到你账户的默认事件总线。

  8. (可选)如果您不想立即运行所选总线上的规则,请关闭该规则。

  9. 对于 Rule type(规则类型),选择 Schedule(计划)。

  10. 选择继续创建规则,或者选择下一步

  11. 对于 Schedule pattern(计划模式),执行以下操作之一:

    • 选择在特定时间(例如上午 8:00)运行的精细计划。每月第一个星期一,太平洋标准时间,然后输入 cron 表达式。有关更多信息,请参阅 Amazon EventBridge 用户指南中的 Cron 表达式

    • 选择以常规速率运行的计划,例如每 10 分钟,然后输入 rate 表达式。

  12. 选择下一步

  13. 对于 Target types(目标类型),选择 Amazon Web Service

  14. 选择目标中,选择批处理作业队列。然后,进行以下配置:

    • Job queue(作业队列):输入您在其中计划作业的作业队列的 Amazon 资源名称(ARN)。

    • Job definition (任务定义):输入要用于任务的任务定义的名称和版本或完整 ARN。

    • Job name (任务名称):输入您的任务的名称。

    • Array size (数组大小):(可选) 输入要运行多个副本的任务的数组大小。有关更多信息,请参阅 数组作业

    • Job attempts (任务尝试次数):(可选) 输入任务失败时重试的次数。有关更多信息,请参阅 自动作业重试

  15. 对于 Batch 作业队列目标类型, EventBridge 需要向目标发送事件的权限。 EventBridge 可以创建规则运行所需的 IAM 角色。请执行以下操作之一:

    • 要自动创建 IAM 角色,请选择为此特定资源创建新角色

    • 要使用您已经创建的 IAM 角色,请选择 使用现有角色

  16. (可选)展开 Additional settings (其他设置)

  17. Additional settings(其他设置)部分,对于 Configure target input(配置目标输入),请选择 Input Transformer(输入转换器)。

  18. 选择 Configure input transformer(配置输入转换器)。

  19. (可选)对于示例事件

    1. 对于示例事件类型,选择Amazon 事件

    2. 对于示例事件,选择批处理作业状态更改

  20. Target input transformer(目标输入转换器)部分,对于 Input path(输入路径),请指定要从触发事件中解析的值。例如,要解析批处理作业状态更改事件,请使用以下 JSON 格式。

    { "instance": "$.detail.jobId", "state": "$.detail.status" }
  21. 对于模板正文,输入以下模板:

    { "instance": <jobId> , "status": <status> }
  22. 选择确认

  23. 对于事件的最大期限,请指定未处理事件保留多长时间的时间间隔。

  24. 对于重试次数,请输入事件的重试次数。

  25. 对于死信队列,选择一个选项来说明如何处理未处理的事件。如有必要,指定要用作死信队列的 Amazon SQS 队列。

  26. (可选)选择 添加其他目标,以添加其他目标。

  27. 选择下一步

  28. (可选)在标签中,选择添加新标签以添加资源标签。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 标签

  29. 选择下一步

  30. 对于查看和创建,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择 创建规则