教程:使用 EventBridge 输入转换器按计划将事件信息传递给 AWS Batch 目标 - AWS Batch

教程:使用 EventBridge 输入转换器按计划将事件信息传递给 AWS Batch 目标

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

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

注意

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

创建使用输入转换器的 AWS Batch 目标
  1. 访问 https://console.aws.amazon.com/events/,打开 Amazon EventBridge 控制台。

  2. 从导航栏中,选择要使用的AWS 区域。

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

  4. 选择创建规则

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

    注意

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

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

  7. 对于事件总线,请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择默认。当您账户中的某个 AWS 服务 发出一个事件时,它始终会发送到您账户的默认事件总线。

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

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

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

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

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

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

  12. 选择下一步

  13. 对于 Target types(目标类型),选择 AWS 服务

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

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

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

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

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

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

  15. 对于 Batch job queue(批处理作业队列)目标类型,EventBridge 需要权限才能将事件发送到目标。EventBridge 可以创建运行事件所需的 IAM 角色。请执行以下操作之一:

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

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

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

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

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

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

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

    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. (可选)在标签中,选择添加新标签以添加资源标签。有关更多信息,请参阅《Amazon EventBridge 用户指南》中的 Amazon EventBridge 标签

  29. 选择下一步

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