如何强制仅从 AWS Lambda 启动 Fargate 服务

How to force fargate service to be launched only from AWS Lambda

我创建了一个打印 hello world 的简单任务。我创建了一个 ECR 映像,docker 撰写和 ecs-params.yml.

我得到了打印的 cloudwatch 日志,但任务每分钟都在启动,我猜这是由于 REPLICA 服务类型。

我怎样才能阻止这种情况发生,我只想从 lambda 启动这个 Fargate 任务,当它完成时我不想重新启动它。

提前致谢

如果您希望 ECS 启动一次性/一次性/独立任务并让它 运行 直到它完成,您不会使用 ECS 服务定义,而只是一个任务。 您可以 运行 单独执行任务,而无需打包为 ECS 服务。

参见:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_run_task.html

如果您使用的是 ECS CLI,那么还有 ecs-cli compose create。因此,您将使用 that 调用,而 not 调用也会同时创建 ECS 服务。

然后您可以使用 AWS Lambda 并将 ecs:RunTask AWS API 调用发送到 invoke/start ECS 任务。