AWS EB 环境配置文件应该放在哪里?
Posted
技术标签:
【中文标题】AWS EB 环境配置文件应该放在哪里?【英文标题】:Where should AWS EB environment configuration files go? 【发布时间】:2015-03-10 12:39:03 【问题描述】:用于设置 AWS Elastic Beanstalk 环境属性(例如静态目录映射或环境变量)的文件的位置和行为似乎已更改,因此在线提供的大部分信息似乎已过时(或充其量是令人困惑的) .特别是,虽然很清楚only a single file is currently required为环境本身的配置,但不清楚它们之间有什么关系
.elasticbeanstalk/optionsettings.*
和
.ebextensions/*.config
目前是。
哪些文件应该用于设置 AWS EB 环境属性(例如静态目录映射或环境变量),使用当前 API 和 (3.x) CLI?
例如,像这样内容的文件应该放在哪里?
option_settings:
"aws:elasticbeanstalk:application:environment":
SOME_PUBLIC_CONFIG: "true"
SOME_OTHER_THING: "foo"
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "myapp/static/"
【问题讨论】:
【参考方案1】:您可以使用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 中的设置。 optionsettings 文件的优先级高于 ebextensions,因此如果您在 optionsettings 文件中设置了任何内容,如果在 ebextensions 中进行更改,它将不再起作用。 Ebextensions 是一项服务范围的功能,这意味着无论您使用什么客户端,它们都可以正常工作。选项设置文件是 CLI 特有的功能,这让使用多个客户端的人感到非常困惑。因此,3.x 不使用选项设置文件。
【讨论】:
另外,我认为我应该确保.ebextensions/*
不会被 Git 忽略,对吧?
正确,否则它不会被放入您的应用程序源中。您需要能够将 .ebextensions 提交到 git
感谢您阐明选项设置文件的用途和使用方式。这引起了很多混乱(尤其是因为这里有很多过时的答案)。我现在知道将我的所有 AWS-EB 问题指向何处!
我有another, about setting up SSH。
@orome 是您的第一条评论,如果您使用 .ebignore 文件,git 可以忽略 .ebextensions(如果您在任何配置文件中有一些敏感信息,它应该会被忽略)。见forums.aws.amazon.com/message.jspa?messageID=621059#621059以上是关于AWS EB 环境配置文件应该放在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS Linux 2 上运行的 NGINX 配置中访问 Elastic Beanstalk 环境属性