

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

# 教程：使用 EventBridge 输入变压器按计划将事件信息传递给 AWS Batch 目标
<a name="cwe-input-transformer"></a>

在作业提交中，您可以使用 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/](https://console.aws.amazon.com/events/)。

1. 在导航栏中，选择 AWS 区域 要使用的。

1. 在导航窗格中，选择**规则**。

1. 选择**创建规则**。

1. 对于**名称**，为计算环境指定唯一名称。名称最多可以包含 64 个字符。可以包含大小写字母、数字、连字符（-）和下划线（\$1）。
**注意**  
一条规则不能与同一事件总线上的另一条规则同名。 AWS 区域 

1. （可选）对于**描述**，输入规则的描述。

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

1. （可选）如果您不想立即运行所选总线上的规则，请关闭该规则。

1. 对于 **Rule type**（规则类型），选择 **Schedule**（计划）。

1. 选择**继续创建规则**，或者选择**下一步**。

1. 对于 **Schedule pattern**（计划模式），执行以下操作之一：
   + 选择**在特定时间（例如上午 8:00）运行的精细计划。每月第一个星期一，太平洋标准时间**，然后输入 cron 表达式。有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的 [Cron 表达式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-cron-expressions)。
   + 选择**以常规速率运行的计划，例如每 10 分钟**，然后输入 rate 表达式。

1. 选择**下一步**。

1. 对于 **Target types**（目标类型），选择 **AWS 服务**。

1. 在**选择目标**中，选择**批处理作业队列**。然后，进行以下配置：
   + **Job queue**（作业队列）：输入您在其中计划作业的作业队列的 Amazon 资源名称（ARN）。
   + **Job definition** (任务定义)：输入要用于任务的任务定义的名称和版本或完整 ARN。
   + **Job name** (任务名称)：输入您的任务的名称。
   + **Array size** (数组大小)：(可选) 输入要运行多个副本的任务的数组大小。有关更多信息，请参阅 [数组作业](array_jobs.md)。
   + **Job attempts** (任务尝试次数)：(可选) 输入任务失败时重试的次数。有关更多信息，请参阅 [自动作业重试](job_retries.md)。

1. 对于 **Batch 作业队列**目标类型， EventBridge 需要向目标发送事件的权限。 EventBridge 可以创建规则运行所需的 IAM 角色。请执行以下操作之一：
   + 若要自动创建 IAM 角色，请选择 **Create a new role for this specific resource（为此特定资源创建新角色）**。
   + 要使用您已经创建的 IAM 角色，请选择 **使用现有角色**。

1. （可选）展开**其他设置**。

1. 在 **Additional settings**（其他设置）部分，对于 **Configure target input**（配置目标输入），请选择 **Input Transformer**（输入转换器）。

1. 选择 **Configure input transformer**（配置输入转换器）。

1. （可选）对于**示例事件**：

   1. 对于**示例事件类型**，选择**AWS 事件**。

   1. 对于**示例事件**，选择**批处理作业状态更改**。

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

   ```
   {
       "instance": "$.detail.jobId",
       "state": "$.detail.status"
   }
   ```

1. 对于**模板正文**，输入以下模板：

   ```
   {
       "instance": <jobId> ,
       "status": <status>
   }
   ```

1. 选择**确认**。

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

1. 对于**重试次数**，请输入事件的重试次数。

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

1. （可选）选择 **添加其他目标**，以添加其他目标。

1. 选择**下一步**。

1. （可选）在**标签**中，选择**添加新标签**以添加资源标签。有关更多信息，请参阅《[亚马逊* EventBridge 用户指南》中的亚马逊 EventBridge *标签](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)。

1. 选择**下一步**。

1. 对于**查看和创建**，请查看配置步骤。如果需要进行更改，请选择 **Edit**（编辑）。完成后，选择 **创建规则**。