首页 > 解决方案 > 如何使用 serverless.yml 中的 useDotenv: true 选项访问环境变量并传递给 Lambda 函数?

问题描述

我正在尝试将环境变量传递给 serverless.yml(版本 2.32.0)中的 Lambda 函数,但我不确定这样做的方式。文档:https ://www.serverless.com/framework/docs/environment-variables/没有提到如何。现在,我正在使用该useDotenv: true选项,然后尝试访问环境变量,${process.env.ENV1}但它不起作用。下面是我的serverless.yml文件:

无服务器.yml

service: service-name
frameworkVersion: "2.32.0"
useDotenv: true

provider:
  name: aws
  versionFunctions: false
  runtime: nodejs12.x
  region: <region>
  stage: dev
  profile: default

functions:
  function-name:
    handler: handler
    timeout: 120
    environment:
      ENV1: ${process.env.ENV1}
      ENV2: ${process.env.ENV2}
      ENV3: ${process.env.ENV3}

我运行时没有收到任何错误或警告,sls deploy但没有上传环境变量。我怎么能做到呢?

标签: environment-variablesserverless-framework

解决方案


好的,我通过替换得到process.env.env:

无服务器.yml:

service: service-name
frameworkVersion: "2.32.0"
useDotenv: true

provider:
  name: aws
  versionFunctions: false
  runtime: nodejs12.x
  region: <region>
  stage: dev
  profile: default

functions:
  function-name:
    handler: handler
    environment:
      ENV1: ${env:ENV1}
      ENV2: ${env:ENV2}
      ENV3: ${env:ENV3}
    timeout: 120

推荐阅读