AWS 问题 - 如何使用 Python 在 Fargate 任务中获取 Cloudwatch 事件数据

AWS question - How can I get Cloudwatch event data in a Fargate task with Python

我是 Cloudwatch 事件和 Fargate 的新手。每当文件上传到特定 S3 存储桶时,我想触发 Fargate 任务 (Python) 到 运行。每当我上传文件时,我都可以将任务发送到 运行,并且可以在事件日志中看到名称;但是我想不出一种简单的方法来读取 Fargate 中的事件数据。过去几天我一直在研究这个问题,除了阅读事件日志或使用 lambda 调用任务并将事件数据放入消息队列之外,没有找到解决方案。

有没有简单的方法可以通过boto3获取Fargate中的事件数据?很可能我没有在正确的地方寻找或提出正确的问题。

谢谢

为此,您需要使用 input transformer

每次触发事件规则时,JSON object 可用于转换。

由于事件本身无法在容器中访问(就像 Lambda 函数一样),我们的想法是您实际上将关键信息作为环境变量转发并在您的容器中进行操作。

目前似乎并不是每个服务都在控制台中支持此功能,因此您有以下选择:

您可以从 this link.

查看此具体场景的教程

您可以配置的最简单的选项之一是为同一 s3 图像上传事件设置两个目标。

  • 将同一事件推送到 SQS
  • 同时启动 Fargate 任务

当 Fargate 启动时从 SQS 读取消息事件(中间没有 Lambda),同样的任务定义也适用于正常用例,确保在从 sqs 读取消息后退出进程。

所以在这种情况下,每当 Fargate 任务启动时,它都会从 SQS 读取消息。