教程:侦听Amazon BatchCloudWatch Events - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

教程:侦听Amazon BatchCloudWatch Events

在本教程中,您将设置一个简单的Amazon Lambda函数来侦听Amazon Batch任务事件并将这些事件写出到 CloudWatch Logs 日志流。

Prerequisites

本教程假定您具备可正常工作的计算环境和作业队列,随时可以接受作业。如果您没有要从中捕获事件的正在运行的计算环境和作业队列,请执行开始使用 Amazon Batch创建一个配置文件。在本教程结束时,您可以选择向此作业队列提交作业,以测试您是否已正确配置 Lambda 函数。

第 1 步:创建 Lambda 函数

在此过程中,您将创建一个简单的 Lambda 函数来充当Amazon Batch事件流消息。

创建目标 Lambda 函数

  1. 打开 Amazon Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 依次选择 Create a Lambda functionAuthor from scratch

  3. 适用于函数名称,输入批处理事件流处理程序.

  4. 对于运行时,选择 Python 3.8

  5. 选择创建函数

  6. Function code 部分中,编辑示例代码以匹配以下示例:

    import json def lambda_handler(event, _context): # _context is not used del _context if event["source"] != "aws.batch": raise ValueError("Function only supports input from events with a source type of: aws.batch") print(json.dumps(event))

    这是一个简单的 Python 3.8 函数,可输出由Amazon Batch. 如果一切配置正确,则在本教程结束时,您将在与此 Lambda 函数关联的 CloudWatch Logs 日志流中看到事件详细信息。

  7. 选择 Deploy (部署)

第 2 步:注册事件规则

在本节中,您将创建一个 CloudWatch Events 事件规则,用于捕获来自Amazon Batch资源的费用。此规则捕获来自Amazon Batch在其定义的帐户中。作业消息本身包含有关事件源的信息,包括将事件源提交到其中的作业队列。您可以使用此信息以编程方式过滤和排序事件。

注意

如果您将Amazon Web Services Management Console创建事件规则时,控制台会自动为 CloudWatch Events 添加 IAM 权限以调用 Lambda 函数。但是,如果您使用Amazon CLI,您必须明确授予权限。有关更多信息,请参阅 。事件和事件模式中的Amazon CloudWatch 用户指南.

创建您的 CloudWatch 事件规则

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格上,选择 EventsCreate rule

  3. 对于 Event source,选择 Event Pattern 作为事件源,然后选择 Build custom event pattern

  4. 在文本区域中粘贴以下事件模式。

    { "source": [ "aws.batch" ] }

    此规则适用于您的所有Amazon Batch组和每个Amazon Batchevent. 或者,您也可以创建一个更具体的规则来过滤掉一些结果。

  5. 对于 Targets,选择 Add target。适用于Target type中,选择Lambda 函数,然后选择 Lambda 函数。

  6. 选择 Configure details

  7. 适用于规则定义,输入规则的名称和描述,然后选择创建规则.

第 3 步:测试配置

您现在可以通过向作业队列提交作业来测试您的 CloudWatch 事件配置。如果所有配置都正确完成,您的 Lambda 函数将触发并将事件数据写入该函数的 CloudWatch Logs 日志流。

测试配置

  1. 打开Amazon Batch控制台位于https://console.aws.amazon.com/batch/.

  2. 提交新的 Amazon Batch 作业。有关更多信息,请参阅提交作业

  3. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  4. 在导航窗格中,选择日志,然后选择 Lambda 函数的日志组(例如,/aws/lambda/my-函数)。

  5. 选择日志流以查看事件数据。