我想对由于 AWS CloudFormation 堆栈处于非运行状态而导致的 AWS Elastic Beanstalk 中的环境操作失败进行故障排除。
简短描述
Elastic Beanstalk 创建一个 CloudFormation 堆栈来管理与 Elastic Beanstalk 环境关联的资源。您可以在 CloudFormation 控制台中查看这个名为 awseb-envID-stack 的堆栈。
当 Elastic Beanstalk 环境进入非运行状态时,CloudFormation 堆栈显示 FAILED 状态。您会收到以下错误消息:
"The stack stack_id associated with environment environment-ID is in stack-status state."
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要将您的 Elastic Beanstalk 环境更改为运行状态,请使用下表根据您的 CloudFormation 堆栈状态执行操作:
| | |
|---|
| CloudFormation 堆栈状态 | CloudFormation 操作 | Elastic Beanstalk 操作 |
| CREATE_FAILED | None | 运行重建环境或终止环境操作。 |
| UPDATE_ROLLBACK_FAILED | 使堆栈进入 UPDATE_ROLLBACK_COMPLETE 状态。 | 重试该操作。 |
| DELETE_FAILED | 使堆栈进入 DELETE_COMPLETE 状态。 | 重试该操作。 |
| UPDATE_ROLLBACK_COMPLETE | None | 重试该操作。 |
| UPDATE_COMPLETE | None | 如果堆栈先前的状态为 CREATE_FAILED,请运行重建或终止操作。否则,请重试该操作。 |
| DELETE_COMPLETE | None | 重试该操作。 |
| ROLLBACK_COMPLETE | None | 运行重建环境或终止环境操作。 |
如果 CloudFormation 堆栈的状态为 FAILED,请选择以下解决方法之一。
CREATE_FAILED 状态
当堆栈状态为 CREATE_FAILED 时,环境将无法恢复。即使堆栈状态更改为 UPDATE_COMPLETE,环境仍会出现问题。如果堆栈状态为 CREATE_FAILED,则必须创建一个新的 Elastic Beanstalk 环境。
要重新创建环境,请选择以下选项之一:
UPDATE_ROLLBACK_FAILED 状态
要使 Elastic Beanstalk 环境变为运行状态,请完成以下步骤:
- 打开 CloudFormation 控制台。
- 从堆栈事件中找出在回滚期间更新失败的资源,然后解决失败问题。
- 使堆栈变为 UPDATE_ROLLBACK_COMPLETE 状态。为此,请在 CloudFormation 控制台中执行更新回滚。
- 在 Continue update rollback(继续更新回滚)对话框中,展开 Advanced troubleshooting(高级故障排除)。
- 在 Resources to skip - optional(要跳过的资源 - 可选)部分,选择更新失败的资源。
- 选择 Continue update rollback(继续更新回滚)。现在,堆栈状态显示为 UPDATE_ROLLBACK_COMPLETE。
- 重试返回错误的操作。
DELETE_FAILED 状态
要使 Elastic Beanstalk 环境变为运行状态,请完成以下步骤:
- 打开 CloudFormation 控制台。
- 找出在堆栈事件期间删除失败的资源。
- 手动删除资源。例如,如果资源是安全组,请从 Amazon Elastic Compute Cloud (Amazon EC2) 控制台中删除该安全组。
- 从 CloudFormation 控制台中删除 CloudFormation 堆栈。已删除的堆栈状态显示为 DELETE_COMPLETE。
- 重试终止环境或重建环境操作。
有关详细信息,请参阅如何在 AWSEBSecurityGroup 删除失败时终止或重建 Elastic Beanstalk 环境?
相关信息
将您的 Elastic Beanstalk 环境从无效状态中恢复