解决 EB CLI 方面的问题 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

解决 EB CLI 方面的问题

本主题列出了使用 EB CLI 时遇到的常见错误消息和可能的解决方案。如果您遇到此处未显示的错误消息,请使用反馈 链接告诉我们。

ERROR: An error occurred while handling git command.Error code: 128 Error: fatal: Not a valid object name HEAD

原因:初始化 Git 存储库后但尚未提交时会显示此错误消息。当项目文件夹包含 Git 存储库时,EB CLI 会查找 HEAD 修订。

解决方案:将项目文件夹中的文件添加到暂存区中并提交。

~/my-app$ git add . ~/my-app$ git commit -m "First commit"

ERROR: This branch does not have a default environment.You must either specify an environment by typing "eb status my-env-name" or set a default environment by typing "eb use my-env-name".

原因:在 git 中创建新分支时,默认情况下未挂载到 Elastic Beanstalk 环境。

解决方案:运行 eb list 查看可用环境列表。然后运行 eb use env-name 使用一个可用环境。

ERROR: 2.0+ Platforms require a service role.You can provide one with --service-role option

原因:如果您使用 eb create 指定环境名称(例如 eb create my-env),EB CLI 不会尝试为您创建服务角色。如果没有默认服务角色,就会显示以上错误。

解决方案:不带环境名称运行 eb create,按照提示创建默认服务角色。

部署故障排除

如果您的 Elastic Beanstalk 部署没有按计划顺利运行,您可能收到 404(应用程序无法启动时)或 500(应用程序在运行时失败)响应而不是看到您的网站。要排除众多常见问题,您可以使用 EB CLI 检查部署的状态、查看其日志、使用 SSH 获取对 EC2 实例的访问,或者打开您的应用程序环境的Amazon管理控制台页面。

使用 EB CLI 帮助排除部署的问题
  1. 运行 eb status 以查看当前部署的状态和 EC2 主机的运行状况。例如:

    $ eb status --verbose Environment details for: python_eb_app Application name: python_eb_app Region: us-west-2 Deployed Version: app-150206_035343 Environment ID: e-wa8u6rrmqy Platform: 64bit Amazon Linux 2014.09 v1.1.0 running Python 2.7 Tier: WebServer-Standard- CNAME: python_eb_app.elasticbeanstalk.com Updated: 2015-02-06 12:00:08.557000+00:00 Status: Ready Health: Green Running instances: 1 i-8000528c: InService
    注意

    使用 --verbose 开关可提供有关您正在运行实例状态的信息。如果不使用它,eb status 将只输出有关您的环境的一般信息。

  2. 运行 eb health 以查看有关您的环境的运行状况信息:

    $ eb health --refresh elasticBeanstalkExa-env Degraded 2016-03-28 23:13:20 WebServer Ruby 2.1 (Puma) total ok warning degraded severe info pending unknown 5 2 0 2 1 0 0 0 instance-id status cause Overall Degraded Incorrect application version found on 3 out of 5 instances. Expected version "Sample Application" (deployment 1). i-d581497d Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-d481497c Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-136e00c0 Severe Instance ELB health has not been available for 5 minutes. i-126e00c1 Ok i-8b2cf575 Ok instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10 Overall 646.7 100.0 0.0 0.0 0.0 0.003 0.002 0.001 0.001 0.000 i-dac3f859 167.5 1675 0 0 0 0.003 0.002 0.001 0.001 0.000 i-05013a81 161.2 1612 0 0 0 0.003 0.002 0.001 0.001 0.000 i-04013a80 0.0 - - - - - - - - - i-3ab524a1 155.9 1559 0 0 0 0.003 0.002 0.001 0.001 0.000 i-bf300d3c 162.1 1621 0 0 0 0.003 0.002 0.001 0.001 0.000 instance-id type az running load 1 load 5 user% nice% system% idle% iowait% i-d581497d t2.micro 1a 25 mins 0.16 0.1 7.0 0.0 1.7 91.0 0.1 i-d481497c t2.micro 1a 25 mins 0.14 0.1 7.2 0.0 1.6 91.1 0.0 i-136e00c0 t2.micro 1b 25 mins 0.0 0.01 0.0 0.0 0.0 99.9 0.1 i-126e00c1 t2.micro 1b 25 mins 0.03 0.08 6.9 0.0 2.1 90.7 0.1 i-8b2cf575 t2.micro 1c 1 hour 0.05 0.41 6.9 0.0 2.0 90.9 0.0 instance-id status id version ago deployments i-d581497d Deployed 2 v2 9 mins i-d481497c Deployed 2 v2 7 mins i-136e00c0 Failed 2 v2 5 mins i-126e00c1 Deployed 1 Sample Application 25 mins i-8b2cf575 Deployed 1 Sample Application 1 hour

    以上示例显示带有五个实例的环境,第三个实例上的版本“v2”部署失败。在部署失败之后,预期版本将重置为最后一个成功的版本,在本例中是第一个部署的“Sample Application”。有关更多信息,请参阅使用 EB CLI 监控环境的运行状况

  3. 运行 eb logs 以下载和查看与您的应用程序部署关联的日志。

    $ eb logs
  4. 运行 eb ssh 以连接在应用程序上运行的 EC2 实例并直接查看它。在实例上,您部署的应用程序可在 /opt/python/current/app 目录中找到,您的 Python 环境可在 /opt/python/run/venv/ 中找到。

  5. 运行 eb console 以在Amazon管理控制台上查看您的应用程序环境。您可以使用 Web 界面方便地检查部署的各个方面,包括应用程序的配置、状态、事件和日志。您也可以下载当前或过去您已部署到服务器的应用程序版本。