amazon-web-services - 如何为 ecs 任务添加预热时间?
问题描述
我正在使用 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 秒出现,所以如果我做的时间少于这个时间,负载均衡器可能不会在不健康检查生效之前注意到服务是健康的。
推荐阅读
- ruby-on-rails - ruby on rails 活动记录
- sql - 更新版本号
- flutter - 错误:签署“Runner”需要开发团队
- javascript - 电子表格应用程序:getRange 和 setValues
- google-maps - 谷歌地图无法正确显示。错误解释
- ios - 从 Parse Sever 接收字符串、数字和图像并将它们添加到本地数组
- python - Django全文搜索:如何组合多个查询和向量?
- r - 如何规范化栅格堆栈?
- java - elasticsearch渗透java api示例
- json - 从 JSON 转换为 Python 对象||如何访问此字典元素