用于设置 AWS Elastic Beanstalk 环境属性(例如静态目录映射或环境变量)的文件的位置和行为似乎已更改,因此在线提供的大部分信息似乎已过时(或充其量是混淆)。特别是,虽然很明显目前只需要一个文件来配置环境本身,但不清楚两者之间的关系
-
.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/"
您可以使用 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 不再使用选项设置文件,因为它们经常覆盖 ebextensions 中的设置。选项设置文件的优先级高于 ebextensions,因此如果您在 optionsettings 文件中设置了任何内容,如果在 ebextensions 中更改,它将不再有效。Ebextensions 是一项服务范围的功能,这意味着无论您使用什么客户端,它们始终有效。选项设置文件是 CLI 特定的功能,这使得使用多个客户端的用户的生活非常混乱。因此,3.x 不使用选项设置文件。