将 Elastic Beanstalk 环境从无效状态中恢复 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 Elastic Beanstalk 环境从无效状态中恢复

本主题提供了一些背景信息和资源,解释了如何对处于无效状态的 Elastic Beanstalk 环境进行故障排除。

解决错误

如果对处于无效状态的环境执行标准操作,该等操作将会无法成功完成。失败的操作会返回包含以下文本的错误:

The stack stack_id associated with environment environment-ID is in stack-status state.

要排除和解决此错误,请参阅知识中心文章为什么我的 Elastic Beanstalk 环境处于非运行状态?

注意

2024 年 12 月 16 日之前,失败的操作会返回以下错误:Environment is in an invalid state for this operation. Must be ready.。在这种情况下,您必须在完成纠正措施后联系 Amazon Support 重置环境状态。

目前,您仍然需要按照知识中心文章中所述的说明来解决堆栈问题。但是,成功完成纠正措施后,Elastic Beanstalk 会自动将环境的状态从无效更新为可用,您可以立即恢复对环境的标准操作。

错误发生的原因

当您在 Elastic Beanstalk 中部署应用程序时,该服务会创建一个底层 Amazon CloudFormation 堆栈。Elastic Beanstalk 会调用 Amazon CloudFormation 服务来启动您环境中的资源并传播配置更改。

如果 Elastic Beanstalk 在不具有所需资源访问权限的情况下对环境执行操作,则该环境的底层 CloudFormation 堆栈可能会进入故障状态。虽然权限问题是主要原因,但其他问题也可能导致这种状态。由于堆栈处于故障状态,Amazon CloudFormation 会阻止 Elastic Beanstalk 操作请求执行进一步的堆栈更新,从而导致 Elastic Beanstalk 操作(例如 UpdateEnvironment 和 RetrieveEnvironmentInfo)失败。

此时,您必须先纠正根本问题的根源,以修复 CloudFormation 堆栈。Elastic Beanstalk 服务随后会检测 CloudFormation 堆栈状态的变化,然后继续将环境重置为可用状态。这样,后续操作即可顺利完成。

虽然带外更改也可能会导致问题,但权限问题通常会对 CloudFormation 堆栈和 Elastic Beanstalk 环境造成这种影响。

重要

为了避免对您的环境造成干扰,我们强烈建议您仅通过 Elastic Beanstalk 服务来启动管理和配置环境的操作。使用 Elastic Beanstalk 以外的服务的控制台、CLI 命令或 SDK 修改资源是一种带外更改,会导致资源漂移。资源漂移会影响 CloudFormation 堆栈的状态,这反过来又会导致 Elastic Beanstalk 环境进入无效状态。

有关资源漂移的详细信息,请参阅《Amazon CloudFormation 用户指南》中的什么是漂移?