我在哪里创建 .ebextensions 以使其在 AWS Elastic Beanstalk 中工作
Posted
技术标签:
【中文标题】我在哪里创建 .ebextensions 以使其在 AWS Elastic Beanstalk 中工作【英文标题】:Where do I create .ebextensions for it to work in AWS Elastic Beanstalk 【发布时间】:2020-10-05 14:10:55 【问题描述】:每次有新部署时,我都需要创建几个空目录。
我将遵循How to set folder permissions for a particular container on Elastic Beanstalk 中已接受答案的建议并使用 .ebextensions 方法。
根据文档,我需要将此目录放在“源包的根目录中”。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
这是源包的根吗? /var/application/current
我按照说明制作了一个 .config 文件,但没有被拾取或应用。
我也尝试过手动创建我需要的目录,但是在 web.stdout.log 中,我的应用程序没有使用创建的目录的权限。我什至在这些目录上尝试了 chmod 777。
请帮助我在部署时/部署后创建这些空目录
更新:
我现在用我的可部署 jar 压缩了 .ebextensions,我在日志中看到我的 .config 正在被提取。但是,当我尝试访问我正在创建的目录时,我仍然面临同样的权限问题。这里有什么问题?
createIODir.config:
commands:
create_IO_dir:
command: "mkdir /myIoDir"
ignoreErrors: true
create_input_dir:
command: "mkdir /myIoDir/input"
ignoreErrors: true
create_output_dir:
command: "mkdir /myIoDir/output"
ignoreErrors: true
create_record_dir:
command: "mkdir /myIoDir/input/record"
ignoreErrors: true
create_schema_dir:
command: "mkdir /myIoDir/input/schema"
ignoreErrors: true
create_json_dir:
command: "mkdir /myIoDir/output/json"
ignoreErrors: true
create_avro_dir:
command: "mkdir /myIoDir/output/avro"
ignoreErrors: true
permissions_IO_dir:
command: "chmod 777 /myIoDir"
ignoreErrors: true
permissions_input_dir:
command: "chmod 777 /myIoDir/input"
ignoreErrors: true
permissions_output_dir:
command: "chmod 777 /myIoDir/output"
ignoreErrors: true
permissions_record_dir:
command: "chmod 777 /myIoDir/input/record"
ignoreErrors: true
permissions_schema_dir:
command: "chmod 777 /myIoDir/input/schema"
ignoreErrors: true
permissions_json_dir:
command: "chmod 777 /myIoDir/output/json"
ignoreErrors: true
permissions_avro_dir:
command: "chmod 777 /myIoDir/output/avro"
ignoreErrors: true
【问题讨论】:
你能显示你的部署 zip 文件的文件夹结构吗? @Marcin 我刚遇到这个docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 我从来没有遵循过 zip 方法,但我可以尝试一下。这是可以接受的:project.zip 和里面:myApp.jar .ebextensions 是的。.ebextensions
应该位于 zip 的根目录(顶部)中。
好的,所以我部署了 .zip 文件,我知道 .ebextensions 已通过,因为我在日志中看到了它。但是,当我尝试访问在 .config 文件中创建的目录时,我仍然面临权限被拒绝的问题。我将编辑我的问题以包含我的 .config
谢谢@Marcin,这是我接受的答案
【参考方案1】:
基于命令。
问题是文件夹是在 linux 文件系统的 root /
中创建的,而不是在部署文件夹中。
解决方案是修复所创建文件夹的路径。
【讨论】:
以上是关于我在哪里创建 .ebextensions 以使其在 AWS Elastic Beanstalk 中工作的主要内容,如果未能解决你的问题,请参考以下文章
如何隐藏 DefaultTableModel 中的特定列以使其在表中显示?
为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?