View a markdown version of this page

教程:使用 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. 打开亚马逊 EventBridge 控制台,网址为https://console.aws.amazon.com/events/。

  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 作业队列目标类型, EventBridge 需要向目标发送事件的权限。 EventBridge 可以创建规则运行所需的 IAM 角色。请执行以下操作之一:

    • 若要自动创建 IAM 角色,请选择 Create a new role for this specific resource(为此特定资源创建新角色)。

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

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

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

  29. 选择下一步。

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