AWS EB环境配置文件应该放在哪里?

时间:2015-01-12 17:07:37

标签: amazon-web-services elastic-beanstalk

用于设置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/"

1 个答案:

答案 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文件。