当前位置: 首页 > 知识库问答 >
问题:

如何在Amazon Elastic Beanstek(AWS EBS)上传递自定义环境变量?

汪和悌
2023-03-14

亚马逊弹性豆茎简介说:

弹性豆茎让你“打开引擎盖”并保持完全控制...甚至通过弹性豆茎控制台传递环境变量。

http://aws.amazon.com/elasticbeanstalk/

除了弹性Beanstalk配置中的环境变量外,如何传递其他环境变量?

共有3个答案

上官砚文
2023-03-14

在2016年的Java8 Tomcat8 AMI中,ElasticBeanstek未能从Web配置中设置环境变量。他们实际上是在设置jvm-D属性。

--"以下属性作为环境变量传递给应用程序。了解更多。"

对于Java Tomcat ami,此语句不正确。Amazon没有将这些设置为环境变量。它们被设置为在命令行上作为jvm的a-D属性传递给Tomcat的系统属性。Java中获取环境变量的方法与获取属性的方法不同。系统getenv vs系统。getProperty(获取属性)

我用ssh连接到盒子中,并验证环境变量从未设置。然而,在tomcat日志中,我可以看到设置了-D属性。

现在,作为一种解决方法,我已经更改了代码以检查这两个位置。

孟乐逸
2023-03-14

仅限制5个值,或者您可能需要自定义环境变量名称。您可以通过使用配置文件来实现这一点。在项目的根目录中创建一个名为

. eb扩展/

然后创建一个名为environment.config的文件(这个文件可以被称为任何东西,但它必须具有. config扩展名)并添加以下值

option_settings:
  - option_name: CUSTOM_ENV
    value: staging

部署应用程序后,您将在环境详细信息下看到此新值-

有关更多信息,请查看此处的文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-容器格式选项

使现代化

为了防止将API键、机密等值提交到存储库,可以放置占位符值。

option_settings:
  - option_name: SOME_API_KEY
    value: placeholder-value-change-me

稍后您可以转到AWS管理面板(环境详细信息-

更新2正如@Benjamin在他的评论中所说,由于新的外观和感觉于2013年7月18日推出,因此可以直接从控制台定义任意数量的环境变量:

<代码>配置

萧芷阳
2023-03-14

作为对任何使用<代码>的人的提醒。E扩展/*。配置方式:现在,您可以在弹性Beanstalk web界面中添加、编辑和删除环境变量。

变量位于配置→软件配置下:

像Onema的答案一样在. eb扩展中创建vars仍然有效。

它甚至可能更可取,例如,如果您稍后将部署到另一个环境,并且害怕忘记手动设置它们,或者如果您可以将值提交给源代码管理。我将两者混合使用。

 类似资料:
  • 问题内容: 我正在尝试将有角度的应用程序从gulp转换为webpack。在gulp中,根据NODE_ENV,我使用gulp- preprocess替换html页面中的某些变量(例如,数据库名称)。使用webpack达到类似结果的最佳方法是什么? 问题答案: 有两种基本方法可以实现此目的。 定义插件 请注意,这只会按原样替换匹配项。这就是字符串具有其格式的原因。您可能有一个更复杂的结构,例如那里的一

  • 我需要在Dockerfile中传递环境变量,如下所示。我可以知道做这件事的有效方法吗。我尝试使用构建参数 但它没有用。 这是我的 Dockerfile 所以当我运行我的docker容器时,我相信我不想向它发送任何环境变量。 请指教。

  • 我正在尝试安装一个带有特殊选项的NPM软件包,它是: 它在Linux上运行良好,但在windows上运行时,我会出现下一个错误 有谁能帮我把它用在Windows10上吗

  • 我们有一个预先存在的开发工具包,其中包含各种不同的JDK,我们需要这些JDK。该工具包定义了环境变量,例如指向适当目录的和。这些路径在工具包中是稳定的,但在开发人员和构建自动化机器之间并不稳定。我们用于构建自动化的构建脚本依赖于这些变量在每种情况下设置适当的JDK。Gradle最近引入了对从环境变量中检测工具链的支持,我们正在成功地使用这些工具链。 我们现在正在评估使用IntelliJ IDEA作

  • 我在postman中有2个chanined请求,第一个执行GET以列出所有数据,然后根据返回的值设置环境变量。第二个请求尝试使用环境变量作为字段值的 POST。 请求1 的值为5 请求 2 带主体: 这可以通过Postman的GUI正常工作,但是当从命令行Newman运行时,当请求到达API时,的值是不是如预期的那样。 我执行了相同类型的替换,环境变量直接从返回的数据中设置 这部作品不是《邮递员》

  • 问题内容: 我是Docker的新手,目前尚不清楚如何从容器访问外部数据库。硬编码连接字符串的最佳方法是吗? 问题答案: 您可以使用该标志将环境变量传递到您的容器。 启动脚本的示例: 或者,如果您不希望在命令行中使用,等显示该值,则可以直接从当前环境中获取该值,如果您不带: 如果您有许多环境变量,尤其是要保密的话,可以使用env文件: --env-file标志将文件名作为参数,并期望每行采用VAR