从 .ebextensions 配置文件访问 Elastic Beanstalk 环境属性

Posted

技术标签:

【中文标题】从 .ebextensions 配置文件访问 Elastic Beanstalk 环境属性【英文标题】:Accessing an Elastic Beanstalk environment property from an .ebextensions config file 【发布时间】:2017-05-06 18:25:20 【问题描述】:

在 Elastic Beanstalk 中,是否可以从 .ebextensions *.config 文件中引用环境属性?

例如,使用 Cloud Formation,我已将以下环境属性添加到创建的环境中 -

- Namespace: "aws:elasticbeanstalk:application:environment"
  OptionName:  "LOAD_USER_PROFILE"
  Value:       !Ref "LoadUserProfile"

此属性已添加并按预期显示在我的环境的软件配置的环境属性部分 -

但是,当我尝试通过 .ebextensions *.config 文件访问该属性时,它会失败并出现以下错误 -

构建期间发生错误:命令 loaduserprofile 失败

这是来自我的 *.config 文件的命令(源自给定的答案 here),如果我硬编码 truefalse 代替 $LOAD_USER_PROFILE -.

container_commands:
  loaduserprofile:
    command: appcmd set apppool "DefaultAppPool" -processModel.loadUserProfile:"$LOAD_USER_PROFILE"
    cwd: C:\\Windows\\System32\\inetsrv

我想要实现的目标是否可行,如果可以,我做错了什么?

【问题讨论】:

【参考方案1】:

将它们作为环境变量传递给应用程序的说法可能会产生误导。

它们实际上是作为属性传递给您的应用程序的,因此这取决于您在 EB 中部署的应用程序。看来您正在使用 IIS/.Net,因此属性名称和值将按照以下答案添加到 web.config:

How to read Elastic Beanstalk Environment Properties in .net?

【讨论】:

谢谢,这确实有助于弄清楚发生了什么。遗憾的是,我认为需要采用不同的方法!#

以上是关于从 .ebextensions 配置文件访问 Elastic Beanstalk 环境属性的主要内容,如果未能解决你的问题,请参考以下文章

在 ebextensions 文件中使用环境变量

使用 Rails 部署 AWS - .ebextensions 中的配置文件

Beanstalk 部署忽略了我在 .ebextensions 中的 nginx 配置文件

如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

我应该在配置文件 (.ebextensions) 或保存的配置下放置弹性 beanstalk 选项吗?

无法通过 .ebextensions 文件更改 AWS 中的 tomcat 配置