【问题标题】:Spread all dotenv keys and values to process.env without having to define it one by one in serverless.yml将所有 dotenv 键和值传播到 process.env 中,而不必在 serverless.yml 中一一定义
【发布时间】:2021-11-08 02:57:10
【问题描述】:

我正在使用 node & expressjs 作为应用程序。我在使用dotenv 将其部署到无服务器时遇到问题(不使用任何 dotenv 插件)。 我的serverless.yml是这样的:

functions:
  server:
    handler: index.server
    events:
      - http: ANY /
      - http: "ANY /{proxy+}"
    environment:
      ENV_VAR1: ${env:ENV_VAR1}

我的.env.staging 是这样的:

ENV_VAR1='ENV_VAR1 using .env.staging'
ENV_VAR2='ENV_VAR2 using .env.staging'

我使用 AWS Lambda 并使用 sls deploy --stage staging 部署它。到目前为止,我可以通过调用process.env.ENV_VAR1 从.env.staging 读取ENV_VAR1,因为我在serverless.yml 文件中明确定义了它。但ENV_VAR2 的情况并非如此。

我的问题是,如何加载所有.env.{stage}文件而不一一定义密钥? 我希望像这样加载它:

environment: ${file(.env.${self:stage})}

提前谢谢你。

【问题讨论】:

    标签: express aws-lambda environment-variables serverless dotenv


    【解决方案1】:

    据我所知,没有办法,你必须一个一个地做(你必须在环境中有一个带有键值对的对象,但你试图给它一个字符串 - 即使它将被解释为包含某些内容的文件,当您引用它时它仍然是一个字符串)。

    我不是专家,所以可能还有一些技巧。

    【讨论】:

      猜你喜欢
      • 2019-02-03
      • 1970-01-01
      • 2019-12-04
      • 2021-07-29
      • 2018-06-25
      • 2021-01-28
      • 2019-04-26
      • 1970-01-01
      • 2019-02-24
      相关资源
      最近更新 更多