【问题标题】:How environment variables are used when deployed on aws在 aws 上部署时如何使用环境变量
【发布时间】:2019-10-25 11:47:04
【问题描述】:

我正在构建一个在本地使用环境变量的 Web 应用程序,我想将它投入生产(在线)。我正在尝试找出如何在 AWS 上设置环境变量。

这是一个 node.js 应用程序,我在 AWS 上使用弹性 beanstalk 进行部署。我已经查看了 https://docs.aws.amazon.com/cloud9/latest/user-guide/env-vars.html#env-vars-env-list ,但我不确定哪个选项适用于我。

我在本地拥有的 .env 文件包含类似的行

密码=我的密码

我正在使用 dotenv 包,带有 require('dotenv').config();在相应的文件中。我正在通过 process.env.PASSWORD 之类的方式访问代码中的环境变量(使用上述 .env 文件中的一行示例)。

我尝试搜索了几个地方,并看到了各种选项,但我不确定哪一个适用于我的环境变量。

【问题讨论】:

  • 你试过 process.env.VARNAME 吗?

标签: node.js amazon-web-services environment-variables


【解决方案1】:

您关注的链接可能会对您管理的 ec2 机器有所帮助,但如果您使用的是 Elasticbeanstalk,我建议您使用 Environment variable configuration provided by elasticbeanstalk

我不赞成 .env 在 Elasticbeanstalk、ECS 和许多其他服务的情况下,AWS 提供了简单且开箱即用的功能来在配置中设置环境变量,.env 将环境写入文件,这更少安全然后是系统环境变量。

Elasticbeanstalk ENV 的有趣之处在于,系统环境变量的外围比 .env 环境变量更高,但最好不要将 dotenv 放在 elasticbeanstalk 上。

环境属性和其他软件设置

您可以使用环境属性来传递秘密、端点、调试 设置和其他信息到您的应用程序。环境 属性帮助您在多个环境中运行您的应用程序 不同的目的,例如开发、测试、登台和 生产。

elasticbeanstalk-deploy_nodejs

Example .ebextensions/options.config

option_settings:
  aws:elasticbeanstalk:application:environment:
    API_ENDPOINT: www.example.com/api

现在你需要的一切

var endpoint = process.env.API_ENDPOINT

环境属性

环境属性部分允许您指定环境 正在运行的 Amazon EC2 实例上的配置设置 你的申请。这些设置作为键值对传递给 应用程序。

在 AWS Elastic Beanstalk 中运行的 Node.js 环境中,您 可以使用process.env.ENV_VARIABLE访问环境变量 类似于下面的例子。

var endpoint = process.env.API_ENDPOINT

【讨论】:

  • 感谢这真的很有帮助 - 值得指出的是,在您的代码中使用 require dotenv 会导致运行状况下降,您的应用程序将无法运行(至少这是我发现的)。
猜你喜欢
  • 2014-10-28
  • 2018-12-14
  • 2016-07-13
  • 1970-01-01
  • 2022-10-23
  • 2015-08-10
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多