为什么 Amazon ECS 部署断路器将我的部署状态设置为 FAILED(失败)?

1 分钟阅读
0

Amazon Elastic Container Service (Amazon ECS) 部署断路器将我的部署状态设置为 FAILED(失败)。我想排查导致部署失败的原因。

简短描述

当部署中的连续失败次数达到定义的阈值时,部署断路器会将部署状态设置为 FAILED(失败)。您可能会收到以下错误消息:

“资源处理器返回消息: ‘在‘触发 ECS 部署断路器’操作期间出现错误。’(RequestToken:xxxxxxxx-xxxx-xxxxxx-xxxxxxx,HandlerErrorCode: GeneralServiceException)”

以下问题可能会导致您的部署失败:

  • 容器未通过运行状况检查。
  • 目标组未通过应用程序负载均衡器运行状况检查。
  • Amazon Elastic Container Registry (Amazon ECR) 映像不存在。
  • 您的容器实例不符合所有要求。
  • 任务已停止或无法启动。

解决方法

要对此问题进行故障排除,请查看 Amazon ECS 服务事件消息以确定 Amazon ECS 激活断路器的原因。然后,根据原因执行以下故障排除操作。

容器未通过运行状况检查

如果您的任务中的 Amazon ECS 容器无法通过运行状况检查,则您会收到以下错误消息:

“(服务 AWS-Service)(任务 ff3e71a4-d7e5-428b-9232-2345657889)未通过容器运行状况检查。”

要解决此问题,请执行以下操作:

有关详细信息,请参阅如何对 Amazon ECS 任务的容器运行状况检查失败问题进行故障排除?

目标组未通过应用程序负载均衡器运行状况检查

要解决此问题,请完成以下步骤:

  1. 验证您是否已正确配置目标组的运行状况检查设置。
  2. 确保您的应用程序正确响应指定的运行状况检查请求。此外,请确保没有网络或安全组问题阻止运行状况检查请求。

有关详细信息,请参阅如何对应用程序负载均衡器运行状况检查失败进行故障排除?

**注意:**仅当运行状况检查连续失败时,Amazon ECS 才会启动回滚。

Amazon ECR 映像不存在

要解决此问题,请完成以下步骤:

  1. 验证任务定义中的映像 URI 是否正确且存在于您的 Amazon ECR 存储库或其他容器注册表中。
  2. 确保您的Amazon ECS 任务执行 IAM 角色拥有从 Amazon ECR 提取映像的正确权限。
  3. 检查您的 Amazon ECS 集群和容器注册表之间是否存在网络连接问题。

有关详细信息,请参阅当我的任务无法在 Amazon ECS 集群中启动时,如何解决“Image does not exist”(映像不存在)错误?

您的容器实例未满足所有要求

要解决此问题,请参阅如何解决 Amazon ECS 中的“no container instance met all of its requirements”(没有容器实例满足其所有要求)错误?

任务已停止或无法启动

要解决此问题,请完成以下步骤:

  1. 使用 Amazon CloudWatch Logs Insights 来查看您的日志,并使用 DescribeTasks API 来获取任务的 stoppedReason
  2. 确认集群有活动实例。
  3. 确保任务的 CPU 或内存不超过容器实例的 CPU 或内存。

有关详细信息,请参阅为什么我的 Amazon ECS 任务停止了?以及为什么我的 Amazon ECS 集群中的任务无法启动?

相关信息

Announcing Amazon ECS deployment circuit breaker

AWS 官方
AWS 官方已更新 2 个月前