healthcheck 的路径应该在为 Fargate 服务创建的目标组中

What should the path of healthcheck be in the target group created for Fargate Service

我使用 AWS Fargate 部署了 docker 图像。当我根据任务定义创建服务时,日志显示 tomcat 没有错误并且应用程序已启动并且 运行ning 但由于健康检查失败,新实例不断旋转

健康检查(针对与服务相关的目标群体)
协议:HTTP
路径:/Sampler/data/ping
端口:traffic/port

健康检查的正确路径是什么? 我也尝试提供服务名称,但没有用 例如:/servicename/data/ping 你能建议我缺少什么吗?

我已经通过 运行ning docker 运行 -p 8080:8080 sampler:latest 在本地部署了相同的 war 文件(相同的图像从本地推送到 ECR),当我点击 URL http://localhost:8080/Sampler/data/ping 时,我得到 200 状态码

Docker 文件
来自 tomcat:9.0-jre8-alpine
复制 target/Sampler-*.war $CATALINA_HOME/webapps/Sampler.war
曝光 80

健康检查的路径取决于您的应用程序。根据您提供的信息,我怀疑问题可能与 healthCheckGracePeriodSeconds

有关

healthCheckGracePeriodSeconds

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.

https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html

当 ECS 任务需要很长时间才能启动时,Elastic Load Balancing (ELB) 健康检查可能会将任务标记为不健康,并且服务调度程序会关闭任务。

您可以在ECS服务定义参数中指定健康检查宽限期。这指示服务调度程序在任务实例化后的预定义时间段内忽略 ELB 健康检查。

https://aws.amazon.com/about-aws/whats-new/2017/12/amazon-ecs-adds-elb-health-check-grace-period/