AWS CodeDeploy:停留在安装步骤
AWS CodeDeploy: stuck on install step
我正在运行学习 this 教程,以使用基于 .net 的自定义 docker 图像创建部署管道。
但是当我开始部署时,它停留在 install 阶段,所以我必须手动停止它:
之后,我得到了几个具有不同任务定义的 运行ning 任务(注意:1 和:4,因为我现在已经尝试 运行 部署 4 次):
他们也一直在改变他们的状态运行->PROVISIONING->PENDING。停止的任务列表不断增加:
问:
那么,如何找出 CodeDeploy 的问题呢?为什么它永远 运行ning?
更新:
它连接到健康检查。
更新:
我得到这个:
(service dataapi-dev-service, taskSet ecs-svc/9223370487815385540) (port 80) is unhealthy in target-group dataapi-dev-tg1 due to (reason Health checks failed with these codes: [404]).
不太明白,为什么新创建的容器会失败,因为原来的容器通过了健康检查。
当 ECS 任务 运行 时,ELB(弹性负载均衡器)会根据您在目标组中的配置不断对容器进行健康检查,以检查容器是否仍在响应。
根据您的调试消息,容器 (api) 以 404 响应健康检查路径。
我建议您在目标组 dataapi-dev-tg1
中配置 healhcheck 路径。
对于那些仍然遇到这个问题的人:在我的例子中,ECS 集群没有出站连接。
这个问题的可能解决方案:
- 使您与 VPC 一起使用的安全组允许出站流量
- 确保您用于 VPC 的路由 table 与您用于负载均衡器的子网有子网关联(检查路由 tables)
我之所以能够弄清楚,是因为我在 ECS 集群创建期间启用了 CloudWatch 并获得了 CannotPullContainerError
。有关解决此问题的更多信息,请查看 Cannot Pull Container Image Error.
如果您的负载均衡器面向互联网,请确保您的互联网网关通过路由 Table(路由)连接到您的子网。
错误是由于健康检查检测到不健康的目标。
确保在目标组设置中检查您的配置。
我正在运行学习 this 教程,以使用基于 .net 的自定义 docker 图像创建部署管道。
但是当我开始部署时,它停留在 install 阶段,所以我必须手动停止它:
之后,我得到了几个具有不同任务定义的 运行ning 任务(注意:1 和:4,因为我现在已经尝试 运行 部署 4 次):
他们也一直在改变他们的状态运行->PROVISIONING->PENDING。停止的任务列表不断增加:
问: 那么,如何找出 CodeDeploy 的问题呢?为什么它永远 运行ning?
更新: 它连接到健康检查。
更新: 我得到这个:
(service dataapi-dev-service, taskSet ecs-svc/9223370487815385540) (port 80) is unhealthy in target-group dataapi-dev-tg1 due to (reason Health checks failed with these codes: [404]).
不太明白,为什么新创建的容器会失败,因为原来的容器通过了健康检查。
当 ECS 任务 运行 时,ELB(弹性负载均衡器)会根据您在目标组中的配置不断对容器进行健康检查,以检查容器是否仍在响应。
根据您的调试消息,容器 (api) 以 404 响应健康检查路径。
我建议您在目标组 dataapi-dev-tg1
中配置 healhcheck 路径。
对于那些仍然遇到这个问题的人:在我的例子中,ECS 集群没有出站连接。
这个问题的可能解决方案:
- 使您与 VPC 一起使用的安全组允许出站流量
- 确保您用于 VPC 的路由 table 与您用于负载均衡器的子网有子网关联(检查路由 tables)
我之所以能够弄清楚,是因为我在 ECS 集群创建期间启用了 CloudWatch 并获得了 CannotPullContainerError
。有关解决此问题的更多信息,请查看 Cannot Pull Container Image Error.
如果您的负载均衡器面向互联网,请确保您的互联网网关通过路由 Table(路由)连接到您的子网。
错误是由于健康检查检测到不健康的目标。
确保在目标组设置中检查您的配置。