如何使用 AWS Batch 作为我的 EventBridge 规则的目标?

2 分钟阅读
0

我想将 AWS Batch 作为我的 Amazon EventBridge 规则的目标使用。

解决方法

下例演示了如何配置 Amazon EventBridge 以在创建新的 Amazon Simple Storage Service (Amazon S3) 存储桶时提交 AWS Batch 作业。

创建作业定义

1.    打开AWS Batch 控制台

2.    从导航栏中选择您的 AWS 区域。

3.    在导航窗格中选择作业定义,然后选择创建

4.    对于作业定义名称,为您的作业定义输入一个唯一的名称。

**注意:**您在此唯一名称中最多可以使用 128 个字母(大写和小写字母)、数字、连字符和下划线。

5.    对于容器镜像,输入 amazonlinux

6.    对于命令,输入以下内容:

echo Ref::S3bucket

7.    对于 vCPU,输入 2

8.    对于 内存 (MiB),输入 500

9.    选择 Next(下一步),然后选择 Create(创建)。

获取作业队列的 ARN 和作业定义

1.    打开AWS Batch 控制台

2.    在导航窗格中,选择作业队列

3.    选择您的作业队列。

4.    在 Job queue details(任务队列详细信息)部分,复制队列 ARN,然后将其保存以便稍后使用。

5.    在导航窗格中选择作业定义,然后选择您之前创建的作业定义。

6.    在 Job definition details(任务定义详细信息)部分,复制任务定义 ARN,然后将其保存以便稍后使用。

为 S3 存储桶中的对象启用 CloudTrail 数据事件日志记录

要在 Amazon S3 对象级操作时触发 AWS Batch 任务(例如,当新对象上传到现有存储桶时),请参阅为 S3 存储桶和对象启用 CloudTrail 事件日志记录

创建 EventBridge 规则

1.    打开 EventBridge 控制台

2.    选择创建规则

3.    为规则输入 Name(名称)。可选择输入 Description(描述)。

4.    在 Define pattern(定义模式)中,选择 Event pattern(事件模式)。

5.    选择 Pre-defined pattern by service(按服务分类的预定义模式)。

6.    对于 Service provider(服务提供商),选择 AWS

7.    对于 Service name(服务名称),请选择 Simple Storage Service (S3)

8.    对于 Event Type(事件类型),选择 Bucket-Level API Call via CloudTrail(通过 CloudTrail 进行存储桶级 API 调用)。

9.    选择 Any operation(任何操作)。

10.    在 Select targets(选择目标)部分,从“目标”下拉列表中选择 Batch job queue(批处理任务队列)。

11.    对于 Job queue(任务队列),粘贴您之前复制的任务队列 ARN。

12.    对于 Job definition(任务定义),粘贴您之前复制的任务定义 ARN。

13.    对于 Job name(任务名称),输入您的 AWS Batch 任务的名称。

14.    在 Configure input(配置输入)部分,选择 Input Transformer(输入转换器)。

15.    在第一个输入框中,输入触发事件时将发送的 S3 存储桶值:

{"S3BucketNameValue":"$.detail.requestParameters.bucketName"}

**注意:**请将 S3BucketNameValue 替换为您自己的值。

16.    在第二个输入框中,输入将发送到 Batch 任务的参数结构:

{"Parameters" : {"S3bucket": S3BucketNameValue}}

**注意:**请将 S3BucketNameValue 替换为您自己的值。请将 S3bucket 替换为您要在 AWS Batch 任务中定义的参数的名称。

17.    选择为此特定资源创建新角色使用现有角色

**注意:**如果您选择现有角色,该角色应具有允许 batch:SubmitJob 操作的 AWS Identity and Access Management (IAM) 策略。

18.    选择 Create(创建)。

测试您创建的新规则

1.    打开 Amazon S3 控制台

2.    选择创建存储桶

3.    在存储桶名称字段中,键入新存储桶的符合 DNS 标准的唯一名称。

4.    对于 Region(区域),选择您创建 EventBridge 规则的区域。

5.    选择 Create(创建)。

检查您的日志记录

1.    打开AWS Batch 控制台

2.    在导航窗格中,选择作业

3.    选择状态已成功的作业。

4.    在作业详细信息页面的尝试部分,选择查看日志记录。日志会在 CloudWatch 控制台中显示您的存储桶名称。


相关信息

教程:使用输入转换器自定义 EventBridge 传递给事件目标的内容

AWS 官方
AWS 官方已更新 2 年前