是否可以在 AWS ECS 上定义任务超时?

Ren*_*ano 9 amazon-web-services amazon-ecs docker

我只需要知道在 AWS ECS Dockers 上运行任务时是否有任何方法可以定义超时

编辑: 我尝试设置ECS_CONTAINER_STOP_TIMEOUT变量,但这是终止 docker的超时时间,我想要超时终止任务

oie*_*elo 7

目前还没有,有一个功能请求:

https://github.com/aws/containers-roadmap/issues/291

ecs 任务应该在没有时间限制的情况下运行您的进程/代码(与 lambda 相比,您有 15 分钟的超时时间)

我的第一个建议是在 lambda 中运行 docker: https://aws.amazon.com/blogs/aws/new-for-aws-lambda-container-image-support/

如果您不能或不想更改...您可以做的是在应用程序中配置超时函数并调用stop-taskcli 操作

您将需要在 cli 命令中提供集群名称或 arn 以及任务名称或 arn

要从应用程序内访问它,首先启用容器元数据

现在您可以查询代理端点

curl http://localhost:51678/v1/metadata
curl http://localhost:51678/v1/tasks
Run Code Online (Sandbox Code Playgroud)

确保检查 ec2 或 fargate 实例的元数据 URL: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint.html

一般行动:

优点:

  • 非常便宜,您不需要 AWS 的额外资源

成本:

  • 您需要编写/创建超时代码并集成元数据等