AWS Beanstalk命令

时间:2016-11-23 14:09:43

标签: amazon-web-services elastic-beanstalk

我一直在使用EBS而没有任何问题。今天,我已经添加了负载均衡器,并使用以下配置上传了我的包:

files:
  "/etc/nginx/conf.d/proxy.conf":
    mode: "000755"
    owner: root
    group: root
    content: |
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


container_commands:
  01_reload_nginx:
    command: "service nginx reload"

但是,当我尝试启动软件包时,出现以下错误:

  

应用程序部署在2016-11-23T14:07:40Z失败,退出状态   7和错误:container_command 01_reload_nginx in   .ebextensions / environment.config失败。

怎么回事?

这些是日志:

  

[eb-cfn-init]:在目录中成功执行挂钩   的/ opt / elasticbeanstalk /钩/ appdeploy /预。 [EB-CFN-INIT]:   [2016-11-23T16:09:31.193Z] INFO [2680] - [应用程序部署   ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild]:开始活动......   [eb-cfn-init]:[2016-11-23T16:09:31.506Z] INFO [2680] - [申请书]   部署   TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild]   :开始活动...... [eb-cfn-init]:[2016-11-23T16:09:31.507Z] INFO   [2680] - [应用程序部署   ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild / Infra-EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application]:开始活动... [eb-cfn-init]:[2016-11-23T16:09:31.842Z] INFO   [2680] - [应用程序部署   TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application /命令   01_reload_nginx]:开始活动... [eb-cfn-init]:   [2016-11-23T16:09:31.868Z] INFO [2680] - [应用程序部署   TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application /命令   01_reload_nginx]:活动执行失败,原因是:   (ElasticBeanstalk :: ExternalInvocationError)[eb-cfn-init]:   [eb-cfn-init]:[eb-cfn-init]:[2016-11-23T16:09:31.868Z] INFO [2680]    - [应用程序部署ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild / Infra-EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application / Command   01_reload_nginx]:活动失败。 [EB-CFN-INIT]:   [2016-11-23T16:09:31.868Z] INFO [2680] - [应用程序部署   ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild / Infra-EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application]:活动失败。 [eb-cfn-init]:[2016-11-23T16:09:31.868Z] INFO   [2680] - [应用程序部署   TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild]   :活动失败。 [eb-cfn-init]:[2016-11-23T16:09:31.884Z]信息   [2680] - [应用程序部署   ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild]:活动失败。   [eb-cfn-init]:[2016-11-23T16:09:31.884Z] INFO [2680] - [申请书]   部署ttttttt @ 4 / StartupStage0]:活动失败。 [EB-CFN-INIT]:   [2016-11-23T16:09:31.884Z] INFO [2680] - [应用程序部署   ttttttt @ 4]:已完成活动。结果:[eb-cfn-init]:应用程序   部署 - 命令CMD-SelfStartup失败

5 个答案:

答案 0 :(得分:0)

很可能你的NGINX配置文件坏了,并且在NGINX重新加载时没有通过测试。在服务重新加载期间,NGINX首先检查您的配置文件,如果配置正确,则向NGINX进程发送HUP信号,该进程正常关闭旧工作人员并使用新配置启动新工作程序。

为了验证您的配置文件,您可以使用以下命令:

/usr/bin/nginx -t -c ~/mynginx.conf

-t =不运行,只测试配置文件。 NGINX检查配置是否有正确的语法,然后尝试打开配置中引用的文件。

-c filename =您的配置文件位置(如果不是默认值)

您应该能够使用以下命令测试您的配置(取决于您所使用的操作系统):

service nginx configtest

第一种变体是首选,因为它还会在NGINX配置中打印任何信息,警告和错误消息。

希望这有帮助。

答案 1 :(得分:0)

这很有趣,因为我们的弹性beanstalk部署昨天也在.ebextensions上失败了。它工作一小时后......

AWS在同一时间部署了新版本的EB和S3 ...... https://aws.amazon.com/releasenotes/6845489088399156 https://aws.amazon.com/releasenotes/8532186109690530

我想知道AWS是否有问题?

答案 2 :(得分:0)

我遇到了完全相同的问题,在平台升级期间发生了。我联系了AWS支持部门:他们说他们无法复制,但有一条非常有趣的信息可以防止这种情况发生。

  

但是,[命令:“sudo service nginx reload”]不是必需的,因为nginx服务会在每次成功部署后自动重启。

所以你可以删除

container_commands:
  01_reload_nginx:
    command: "service nginx reload"

脚本的一部分,因此您永远不会有重新加载失败。

答案 3 :(得分:0)

我也面临着类似的问题。有几个

1)我的配置中存在重复项,这引起了问题。直接在命令行上运行命令向我显示了问题

service nginx restart
nginx: [emerg] "keepalive_timeout" directive is duplicate in 
/etc/nginx/conf.d/nginx.custom.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed

因此删除该条目很有帮助。

2)您可以尝试重新启动,而无需重新加载。

command: "service nginx restart"

答案 4 :(得分:0)

我在用Java代码Nginx遇到同样的问题。

container_commands:
  01_reload_nginx:
    command: "service nginx reload"

在我添加的代码中

container_commands:
  01_reload_nginx:
    command: "sudo service nginx reload"

sudo并解决了此错误,成功完成了部署。