Elastic Beanstalk 疑难解答——类别和 FAQs - AWS Elastic Beanstalk

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Elastic Beanstalk 疑难解答——类别和 FAQs

本主题将按类别提供更具体的故障排除提示。

环境创建和实例启动

事件:启动环境失败

此事件在 Elastic Beanstalk 尝试启动环境并在过程中遭遇失败时发生。事件页上过去的事件会提醒您此问题的根本原因。

事件:环境创建完成,但出现命令超时。请尝试增加超时时间。

如果您使用的配置文件要对实例运行命令、下载大型文件或安装程序包,则部署应用程序的时间可能很长。增加命令超时,让应用程序在部署期间有更多时间开始运行。

事件:创建以下资源失败:[AWSEBInstanceLaunchWaitCondition]

此消息表明您环境的亚马逊EC2实例没有向 Elastic Beanstalk 传达它们已成功启动的信息。如果实例没有 Internet 连接就会出现这种情况。如果您将环境配置为在私有子网中启动实例,请确保该VPC子网具有允许实例连接到 Ela NAT stic Beanstalk Beanstalk。

事件:此区域中需要服务角色。请将服务角色选项添加到环境。

Elastic Beanstalk 使用服务角色来监视环境中的资源并支持托管平台更新。请参阅管理 Elastic Beanstalk 服务角色了解更多信息。

部署

问题:应用程序在部署期间变得不可用

由于 Elastic Beanstalk 使用直接升级过程,因此可能会有几秒钟的停机时间。使用滚动部署可尽量减少部署对您的生产环境的影响。

事件:创建 AWS Elastic Beanstalk 应用程序版本失败

应用程序源包可能太大,或者您已达到了应用程序版本配额

事件:环境更新完成,但出现命令超时。请尝试增加超时时间。

如果您使用的配置文件要对实例运行命令、下载大型文件或安装程序包,则部署应用程序的时间可能很长。增加命令超时,让应用程序在部署期间有更多时间开始运行。

健康

事件:CPU利用率超过 95.00%

尝试运行更多实例选择不同的实例类型

事件:Elastic Load Balancer awseb-运行正常的实例myapp为零

如果您的应用程序似乎正在运行,请确保您的应用程序的运行状况检查配置URL正确。如果不是这种情况,请查看运行状况屏幕和环境日志以了解更多信息。

事件:Elastic Load Balancer awseb-找myapp不到

您的环境的负载均衡器可能已被移除 out-of-band。仅使用配置选项以及 Elastic Beanstalk 提供的可扩展性对环境资源进行更改。重建您的环境或者启动新环境。

事件:EC2实例启动失败。正在等待新EC2实例启动...

您环境的实例类型可能具有低可用性,或者您已达到了账户的实例配额。查看服务运行状况控制面板,确保弹性计算云 (AmazonEC2) 服务处于绿色状态,或者申请增加配额

配置

事件:与环境stack_id关联的堆栈environment-ID处于stack-status状态

您的环境的底层 AWS CloudFormation 堆栈可能处于 *_ FAILED 状态。必须修复此状态,才能继续在您的环境中运行 Elastic Beanstalk。有关更多信息,请参阅 将你的 Elastic Beanstalk 环境从无效状态恢复

事件:您无法同时使用 Elastic Load Balancing 目标选项和应用程序运行状况检查选项的值来配置 Elastic Beanstalk 环境 URL

Target 命名空间中的 aws:elb:healthcheck 选项已弃用。从环境中删除 Target 选项命名空间,然后重试更新。

事件:ELB无法连接到同一 AZ 中的多个子网

如果您尝试在同一可用区的子网之间移动负载均衡器,则会看到此消息。更改负载均衡器上的子网需要将其移出原始可用区,然后将所需子网移回原始可用区。在此过程中,您的所有实例都将在两者之间迁移AZs,从而导致长时间停机。相反,可以考虑创建一个新环境并进行CNAME交换

Docker 容器故障排除

事件:无法拉取最新 Docker 映像:资源库名称 () 无效,只允许 [a-z0-9-_.]。有关详细信息,请跟踪日志。

使用JSON验证器检查dockerrun.aws.json文件的语法。另请针对 准备 Docker 映像以部署到 Elastic Beanstalk 中说明的要求验证 dockerfile 内容

事件:在 Dockerfile 中找不到EXPOSE指令,部署中止

Dockerfiledockerrun.aws.json 文件未声明容器端口。使用 EXPOSE 指令 (Dockerfile) 或 Ports 块 (dockerrun.aws.json 文件) 为传入流量公开端口。

事件:无法repository从中下载身份验证凭证 bucket name

.dockercfg文件dockerrun.aws.json提供了无效的 EC2 key pair 和/或 S3 存储桶。或者,实例配置文件没有 S3 存储桶的 GetObject 授权。验证该.dockercfg文件是否包含有效的 S3 存储桶和 k EC2 ey pair。在实例配置文件中s3:GetObject向IAM角色授予操作权限。有关详细信息,请转到 管理 Elastic Beanstalk 实例配置文件

事件:活动执行失败,因为:WARNING: 身份验证配置文件无效

您的身份验证文件 (config.json) 格式不正确。请参阅 使用 Elastic Beanstalk 中私有存储库中的图像

FAQ

问题:如何将我的应用程序URL从 myapp.us-west-2.elasticbeanstalk.com 更改为 www.myapp.com

在DNS服务器中,注册一条CNAME记录,例如www.mydomain.com CNAME mydomain.elasticbeanstalk.com

问题如何为我的 Elastic Beanstalk 应用程序指定一个特定可用区。

您可以使用APIs、CLI、Eclipse 插件或 Visual Studio 插件来选择特定的可用区。有关使用 Elastic Beanstalk 控制台指定可用区的说明,请参阅自动缩放您的 Elastic Beanstalk 环境实例

问题:如何更改我的环境的实例类型?

要更改环境的实例类型,请转到环境配置页面,然后在实例配置类别中选择编辑。然后,选择一种新的实例类型并选择 Apply(应用)以更新环境。之后,Elastic Beanstalk 终止所有正在运行的实例,并将之替换为新实例。

问题:如何确定是否有人对环境进行了配置更改?

要查看此信息,请在 Elastic Beanstalk 控制台的导航窗格中选择 Change history(更改历史记录)以显示所有环境的配置更改列表。此列表包括更改的日期和时间、更改后的配置参数和值,以及进行更改的IAM用户。有关更多信息,请参阅更改历史记录

问题:我能否阻止在实例终止时删除 Amazon EBS 卷?

您环境中的实例使用 Amazon EBS 进行存储;但是,当 Auto Scaling 终止实例时,根卷将被删除。我们不建议您在实例上存储状态或其他数据。如有必要,您可以使用 AWS CLI:防止卷被删除$ aws ec2 modify-instance-attribute -b '/dev/sdc=<vol-id>:false,如AWS CLI 参考中所述。

问题:如何删除 Elastic Beanstalk 应用程序中的个人信息?

AWS 你的 Elastic Beanstalk 应用程序使用的资源可能会存储个人信息。当您终止环境时,Elastic Beanstalk 将终止其创建的资源。还将终止使用配置文件添加的资源。但是,如果您在 Elastic Beanstalk 环境之外创建了 AWS 资源并将其与应用程序关联,则可能需要手动检查您的应用程序可能存储的个人信息是否未被保留。在本开发人员指南中,当我们讨论额外资源的创建时,我们还提到了何时应考虑删除它们。