【问题标题】:AWS Sam Local Environment Variables not available in process.envAWS Sam 本地环境变量在 process.env 中不可用
【发布时间】:2018-12-16 12:50:57
【问题描述】:

使用以下 AWS SAM 模板 process.env 是一个空对象。我希望它包含定义为 dbURL 的模板中的环境变量。

  AWSTemplateFormatVersion: "2010-09-09"
  Transform: "AWS::Serverless-2016-10-31"
  Description: "An example RESTful service"
  Resources: 
   ExampleFunction: 
   Type: "AWS::Serverless::Function"
   Properties: 
    Runtime: "nodejs6.10"
    Handler: "/dist/getTickets/index.handler"
    Events: 
      RootDeveloperHub: 
        Type: "Api"
        Properties: 
          Path: "/new"
          Method: "any"
    Environment:
      Variables:
      dbURL: "dbURL_Value"

处理程序

exports.handler = (event, context, callback) => {
  // logs {}
  console.log(process.env)
}

我已经排除的事情:

【问题讨论】:

  • 我使用 AWS SAM CLI 使用上面的代码和模板获得了环境变量的预期输出。你确定它可以用那个代码重现吗?也许这与您如何打包和部署代码有关?对于使用 Webpack (stackoverflow.com/questions/43786682/…) 的人来说,至少还有一个类似问题的问题。
  • 感谢您查看该设置是否适合您!我将进一步研究我如何打包/部署代码是问题。
  • 感谢@Dunedan stackoverflow.com/questions/43786682/… 得到了我的答复。我将 {target: node} 添加到我的 webpack 配置中,现在我看到了在 AWS-SAM 模板中定义的环境变量。

标签: aws-lambda environment-variables aws-sam-cli


【解决方案1】:

我应该测试我发布的代码...

处理程序在设置为时工作

exports.handler = (event, context, callback) => {
  // logs {}
  console.log(process.env)
}

我的代码的修复是将以下内容添加到我的 webpack 配置中。

{
  ...
  target: 'node'
}

【讨论】:

    猜你喜欢
    • 2018-06-14
    • 2023-04-06
    • 2020-04-29
    • 2019-05-10
    • 2021-03-24
    • 2020-03-22
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    相关资源
    最近更新 更多