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 EB 环境使用的 RDS 数据库

在 AWS Linux 2 上运行的 NGINX 配置中访问 Elastic Beanstalk 环境属性

高级 AWS Elastic Beanstalk 环境配置

清除 EB 初始化配置

使用 API 使用 RDS 配置 ElasticBeanstalk

AWS Elastic Beanstalk - EB 扩展不起作用