首页 > 解决方案 > 是否可以在将项目添加到 SQS 队列时触发 AWS Fargate 任务?

问题描述

为了澄清起见,我要做的是在特定队列中有项目时触发 Fargate 任务。我已经使用本教程来了解我所处的位置。这工作正常,但我遇到的问题是每个文件上传(s3 存储桶的结构是 s3_bucket_name/{unknown_name}/known_file_names)导致任务被触发,我只希望/需要每个 {unknown_name} 触发一次. 此后,我更改了配置以在检测到 test_file.txt 文件时将项目添加到队列中。是否可以在这样的队列上触发 Fargate 任务?如果是这样,怎么做?

标签: amazon-web-servicesamazon-s3terraformamazon-ecsamazon-sqs

解决方案


SQS 不会触发或“推送”消息给任何东西。正如评论中提到的,AWS Lambda 有一个 SQS 集成,它可以自动为您轮询 SQS 并触发一个带有新消息的 Lambda 函数,您可以使用它来创建您的 Fargate 任务。

但是,我建议您像这样重构您的 Fargate 任务:

  • 重新配置容器中运行的代码以轮询 SQS 队列中的消息。
  • 将您的任务作为 ECS 服务运行。
  • 配置 ECS 服务自动缩放以根据 SQS 队列的深度启动任务实例。

推荐阅读