【问题标题】:How to pass file key to AWS-ECS container triggered on S3 Put?如何将文件密钥传递给在 S3 Put 上触发的 AWS-ECS 容器?
【发布时间】:2020-04-11 23:29:08
【问题描述】:

我有一个 ECS 任务定义,只要将文件放入 s3 存储桶中的特定位置,就会触发该定义。我的 ECS 任务定义容器有一个 python 脚本,它想要处理导致触发器的文件。由于对 python 脚本进行了触发,有什么方法可以传递文件密钥?我想避免在这里使用 lambda。

我已经使用这个guide设置了触发器

【问题讨论】:

  • 很遗憾,ECS 任务的 CW 事件触发目标不支持将触发器详细信息传递给 ECS 任务。其中一种方法是在这里涉及 lambda。 S3 Trigger --> Lambda(with S3 bucket/key details) --> AWS ECS Run Task(with ContainerOverrides)。因此,不要使用 CW 事件触发器,而是使用直接 S3 Lambda 触发器,在 Lambda 中,有一个 python 代码来使用overrides 执行 AWS ECS 运行任务。

标签: python amazon-web-services docker amazon-s3 amazon-ecs


【解决方案1】:

这可以通过 API/terraform 实现,但不能直接通过 UI。您可以使用 InputTransformer 将存储桶和密钥作为 containerOverrides 传递。请参阅https://medium.com/@bowbaq/trigger-an-ecs-job-when-an-s3-upload-completes-3559c44c37d1 了解相关文章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2022-10-09
    • 1970-01-01
    相关资源
    最近更新 更多