首页 > 解决方案 > 如何为 ecs 任务添加预热时间?

问题描述

我正在使用 ecs 任务来部署我的服务。但是,最近注意到当我对服务进行更新时,启动的第一个任务通常会立即被删除,因为它没有通过负载均衡器的健康检查。我认为这是因为它需要更多时间(一两秒以上)来启动。我该如何配置?

标签: amazon-web-servicesamazon-ecs

解决方案


当使用新的任务定义更新 ECS 服务时,我建议也设置healthCheckGracePeriodSeconds参数。有关更多详细信息,请参阅服务定义参数

如果您使用的是 cli,您应该可以使用aws ecs update-service --cluster <value> --service <value> --health-check-grace-period-seconds <value>.

例如,如果您的 HealthCheck 间隔为 30 秒,并且 2 次不健康的检查将导致服务被替换,但您知道您的服务需要 65 秒才能启动,您可以设置--health-check-grace-period-seconds 95,这会告诉 ECS 即使服务被认为是不健康的,让它继续运行直到 95 秒过去。在这种情况下,我选择了 95,因为下一次运行状况检查预计会在 90 秒出现,所以如果我做的时间少于这个时间,负载均衡器可能不会在不健康检查生效之前注意到服务是健康的。


推荐阅读