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

4
文件用于设置AWS Elastic Beanstalk环境属性(例如静态目录映射或环境变量)的位置和行为似乎已经发生了改变,因此许多在线可用的信息似乎已经过时(或者最好是令人困惑)。特别是,虽然很明显当前仅需要一个文件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个回答

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

1
另外,我应该确保 Git 不会忽略 .ebextensions/*,对吗? - orome
正确的操作是将其提交到Git中,否则它将无法被放入您的应用程序源代码中。您需要能够提交.ebextensions文件。 - Nick Humrich
谢谢您澄清了optionsettings文件的使用方式,这解决了很多混淆问题(特别是因为这里有很多过时的答案)。现在我知道该向哪里寻求AWS-EB相关问题的解答了! - orome
我还有一个问题,关于设置SSH。(链接:https://dev59.com/JYbca4cB1Zd3GeqPbd5B) - orome
关于您的第一条评论,如果您使用 .ebignore 文件,可以忽略 .ebextensions(如果您在任何配置文件中有一些敏感信息,则应该这样做)。请参见 https://forums.aws.amazon.com/message.jspa?messageID=621059#621059。 - arturomp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接