Aws lambda AWS Sam本地环境变量在process.env中不可用

Aws lambda AWS Sam本地环境变量在process.env中不可用,aws-lambda,environment-variables,aws-sam-cli,Aws Lambda,Environment Variables,Aws Sam Cli,对于以下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::Functio

对于以下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)
}
我已经排除的事情:

  • -我没有明确的插件配置。我也在用mac

我应该测试我发布的代码

当处理程序设置为

exports.handler = (event, context, callback) => {
  // logs {}
  console.log(process.env)
}
我的代码修复程序是将以下内容添加到我的网页配置中

{
  ...
  target: 'node'
}

我使用AWS SAM CLI通过上面的代码和模板获得环境变量的预期输出。你确定这个代码可以复制吗?也许这与您如何打包和部署代码有关?对于使用Webpack()的用户,至少还有一个类似问题。感谢您查看该设置是否适用于您!我将进一步探讨如何打包/部署代码是否是问题所在。感谢@Dunedan提供了我的答案。我将{target:node}添加到我的网页包配置中,现在我看到了AWS-SAM模板中定义的环境变量。