如何让我的 AWS::ECS::Service 资源解除 UPDATE_IN_PROGRESS 或 UPDATE_ROLLBACK_IN_PROGRESS 状态?

上次更新时间:2020 年 9 月 30 日

我对 AWS::ECS::Service 资源的 AWS CloudFormation 堆栈更新陷入 UPDATE_IN_PROGRESS 或 UPDATE_ROLLBACK_IN_PROGRESS 状态。我想稳定堆栈并让我的服务启动新任务。

简短描述

当服务无法启动任务时,您的 Amazon Elastic Container Service (Amazon ECS) 服务可能会陷入 UPDATE_IN_PROGRESS 或 UPDATE_ROLLBACK_IN_PROGRESS 状态。

以下是 Amazon ECS 服务无法启动新任务的一些常见原因:

  • 容器映像问题
  • 缺乏启动任务所需的资源
  • 负载均衡器运行状况检查失败
  • 实例配置或 Amazon ECS 容器代理问题

Amazon ECS 服务无法启动任务导致 AWS CloudFormation 陷入 UPDATE_IN_PROGRESS 状态。然后,AWS CloudFormation 回滚到先前的配置,这个过程需要等待数个小时。在堆栈回滚到先前配置期间,如果导致堆栈失败的问题仍然存在,则堆栈将陷入 UPDATE_ROLLBACK_IN_PROGRESS 状态。最后,堆栈的状态会更改为 UPDATE_ROLLBACK_FAILED。

AWS CloudFormation 堆栈可能需要几个小时才能稳定下来。要更快地稳定堆栈,请完成以下步骤。

重要提示:以下解决方法旨在帮助您快速稳定 AWS CloudFormation 堆栈,而无需等待堆栈超时。该解决方法不适用于生产环境,因为 Amazon ECS 服务与已知的 AWS CloudFormation 状态不同步。要在 Amazon ECS 服务和 AWS CloudFormation 堆栈之间同步资源,您必须在堆栈上执行无错更新。

解决方法

更改 Amazon ECS 服务所需的任务数

  1. 打开 Amazon ECS 控制台
  2. 选择您的集群。
  3. 选择服务,然后选择更新
  4. 任务数设置为 0,然后保存配置。

确定 Amazon ECS 服务无法启动新任务的原因

  1. 打开 Amazon ECS 控制台
  2. 选择您的集群。
  3. 选择服务,然后选择事件
    注意:事件部分显示服务不稳定的原因。
  4. 根据您确定的问题选择解决方法:
    您的任务未通过 Elastic Load Balancing (ELB) 运行状况检查
    标记为任务定义必不可少的容器已退出或中止
    您无法设置任务,因为您的容器实例不符合必要的要求
    您收到“无法拉取容器映像”错误
  5. </ol

这篇文章对您有帮助吗?


您是否需要账单或技术支持?