【问题标题】:AWS - Elastic Beanstalk installation commandsAWS - Elastic Beanstalk 安装命令
【发布时间】:2018-05-25 04:52:45
【问题描述】:

我正在弹性 beantalk 上部署我的 API。每次启动实例时,我都需要一个特定的文件夹“temp_storage”来获得写入权限,因为这是我存储图像的位置,同时在上传到 S3 存储桶之前调整它们的大小。我还需要安装一些作曲家程序。

我的设置是

fd-api/
     composer.json (These need to be installed)
     temp_storage/ (This folder needs write access)
     .ebextensions/
          temp-folders.config

temp-folders.config

container_commands:
  chown_folder:
    command: "chown -R webapp /var/www/html/fd-api/temp_storage"
  chmod_folder:
    command: "chmod 777 /var/www/html/fd-api/temp_storage"

这是我对它应该如何工作的理解,但是当我尝试运行它时,我得到了错误:

对实例 ID“i-03f5ed1eb55f52d17”的命令执行不成功。中止操作。

未能部署应用程序。

在中止部署期间,某些实例可能已经部署了新的应用程序版本。为确保所有实例都运行相同的版本,请重新部署相应的应用程序版本。

我不知道从哪里开始调试这个?我从阅读中了解到,每次生成弹性 beanstalk 实例时,composer 文件都会自动运行,并且 .ebextension/something.config 文件中的任何命令都会运行。

不确定用户 webapp 是什么?假设它是弹性 beanstalk 实例的默认用户?

任何帮助都会很棒。

【问题讨论】:

  • /var/log/eb-activity.log 是您实例上的日志文件,您可以在其中查看日志。
  • 我的猜测是当你的命令运行时temp_storage 文件夹不存在。 ElasticBeanstalk 首先将所有文件提取到暂存位置,然后在执行所有部署挂钩(例如container_commands)后将它们移动到位。正如@Zohaib 所说,/var/log/eb-activity.log 应该告诉你到底发生了什么。此外,webapp 是运行您的应用程序的用户。
  • @Brian 好的,你认为我应该让命令实际创建目录,然后将权限设置为新创建的文件夹吗?
  • 这取决于您的平台在部署期间要做什么。如果它的行为类似于 Ruby 平台,它可能会部署到类似 /var/www/html/staging 的位置,然后在运行所有挂钩后将​​其重命名为 /var/www/html/fd-api。如果是这种情况,您需要在暂存位置创建/chown/chmod 文件夹。您能否发布来自/var/log/eb-activity.log 的相关线路并告诉我们您使用的是什么EB 平台?
  • 这都是自定义代码,所以它只是将其放入具有所有通用设置的弹性 beanstalk 实例中。我尝试将 mkdir 命令添加到文件夹中,并且可以正常工作,但是由于某些原因,当我运行 chmod 命令时它们不起作用。我真的不知道如何在 eb-activity.log 中找到相关文件,因为它太长了,而且真的不知道如何在终端上轻松浏览它@brian

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

解决方案是 .ebextensions 文件中的命令按字典顺序运行。通过在命令名称前添加 001、002、003、...,如下所示:

container_commands:
  001create_folder_nonsudo:
    command: "mkdir temp_storage"
  002chown_folder:
    command: "chown webapp temp_storage"
  003chmod_folder:
    command: "chmod 777 temp_storage"

解决了我的问题

【讨论】:

  • 对不起,我没有提到!出于习惯,我总是在命令前加上数字,但忘记了它的重要性。
  • @Brian 一切都好,非常感谢您的帮助!我很感激。
猜你喜欢
  • 2018-07-01
  • 2019-04-03
  • 2015-09-15
  • 1970-01-01
  • 2017-03-26
  • 2020-06-08
  • 2013-07-08
  • 2016-03-11
  • 1970-01-01
相关资源
最近更新 更多