Elastic Beanstalk:“.ebextensions”未执行

Mus*_*usa 6 nginx amazon-web-services amazon-elastic-beanstalk aws-code-deploy aws-codepipeline

我正在将 PHP 应用程序部署到 Beanstalk,一切似乎都很好,但我的.ebextensions配置文件似乎没有运行。

我只有一个配置文件,它应该创建一个文件,然后重新加载 nginx。
/my-project/.ebextensions/nginx.config:

files:
  "/etc/nginx/conf.d/elasticbeanstalk/extend-nginx.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      add_header X-Frame-Options "SAMEORIGIN";
      add_header X-XSS-Protection "1; mode=block";
      add_header X-Content-Type-Options "nosniff";

      location / {
          try_files $uri $uri/ /index.php?$query_string;
      }

container_commands:
    reload_nginx:
        command: "sudo service nginx reload"
Run Code Online (Sandbox Code Playgroud)

我的架构目前是:
1. CodePipeline 连接到 GitHub,每次更新 master 时都会将应用程序部署到 CodeDeploy。
2. CodeDeploy 从 CodePipeline 接收部署。
3. CodeDeploy 将其安装到 Elastic Beanstalk 实例。

上述所有步骤都可以正常工作。我只是不明白为什么配置文件.ebextensions没有按预期创建文件。

.ebextensions注意:我通过手动下载其中一个修订版本并进行检查,确认该文件夹位于修订版 .zip 的根目录中。

Bal*_*eth 0

尝试简单地将此文件放入.ebextensions/nginx/conf.d/elasticbeanstalk而不使用脚本。

至少 Java SE 平台是这样工作的:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html。我认为这对于 PHP 来说没有什么不同。

另外,在您的 EC2 实例上检查日志文件的输出(cfn-init.log、cfn-init-cmd.log 等)。