用于设置AWS Elastic Beanstalk环境属性(例如静态目录映射或环境变量)的文件的位置和行为似乎已发生变化,因此在线提供的大部分信息似乎已过时(或者最让人困惑) 。特别是,虽然很明显only a single file is currently required用于配置环境本身,但目前尚不清楚它们之间的关系是什么
.elasticbeanstalk/optionsettings.*
和
.ebextensions/*.config
目前是。
使用当前的API和(3.x)CLI,应该使用哪些文件来设置AWS EB环境属性(例如静态目录映射或环境变量)?
例如,带有这样内容的文件应该放在哪里?
option_settings:
"aws:elasticbeanstalk:application:environment":
SOME_PUBLIC_CONFIG: "true"
SOME_OTHER_THING: "foo"
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "myapp/static/"
答案 0 :(得分:2)
您可以使用ebextensions设置任何选项设置。无论您是使用api,Web控制台还是CLI部署代码,这都将有效。
在项目根目录中创建一个名为.ebextensions
的文件夹,并在该文件夹中放置一个文件.config
(点很重要)。然后输入你的内容:
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: SOME_PUBLIC_CONFIG
value: "true"
然后,您需要部署新的应用程序版本。使用CLI,您需要将其检入git(如果使用git),然后使用eb deploy
。
至于此与.elasticbeanstalk / optionsettings文件之间的差异:
CLI 3.X不再使用optionsettings文件,因为它们经常覆盖ebextensions中的设置。 optionsettings文件的优先级高于ebextensions,因此如果你在optionsettings文件中设置了任何内容,那么如果在ebextensions中进行了更改,它将不再有效。 Ebextensions是一项服务范围的功能,这意味着无论您使用何种客户端,它们始终都能正常工作。 Optionsettings文件是CLI特有的功能,这使得生活对于使用多个客户端的人来说非常困惑。因此,3.x不使用optionsettings文件。