【问题标题】:How to pass & return the values from lambda to ECS task如何将值从 lambda 传递和返回到 ECS 任务
【发布时间】:2022-02-03 13:59:47
【问题描述】:
我有一个调用 ECS 任务的 lambda 函数。现在我想将 Lambda 的值作为输入传递给 ECS 任务,ECS 任务的结果应该返回给 Lambda。
我曾尝试使用 run_task() 方法在 lambda 中运行 ECS 任务。它仅返回有关 ECS 任务的信息,但不返回 ECS 任务的结果(输出),我无法将值作为输入传递给 ECS 任务。
关于如何在 ECS 任务中正确传递和返回数据的任何工作示例?
【问题讨论】:
标签:
amazon-web-services
docker
aws-lambda
amazon-ecs
aws-fargate
【解决方案1】:
ECS 任务不是 API 调用或函数,您可以向其传递值并期望从中返回值。运行任务只是意味着启动一个“容器”。该容器是否成功启动取决于许多因素,例如:
- 引用的 Docker 映像(在任务定义中)是否可用
- 任务是否有足够的权限
- 网络设置是否正确
- 任务中的主容器工作正常并通过了健康检查
- 还有更多!
因此,如果您希望容器动态读取值。您可以将该值从您的 lambda 设置为 SSM Parameter Store。然后您在 ECS 中运行的应用程序可以从 Parameter Store 中读取。
Lambda -> save value in Parameter Store -> Run Task
ECS Task -> Read value from Parameter Store