首页 > 解决方案 > Intellij 中的 AWSToolkit,环境变量不起作用

问题描述

我有一个用 java 编写的 AWS lambda 函数,它需要访问环境变量。我可以在 AWS 上设置它们,当它部署在 AWS 上时,我可以使用 lambda 函数中的以下代码行完美地访问环境变量:

System.getenv("myVariable");

对于本地开发,我将相同的环境变量放在 lambda 的运行配置中。不幸的是,当我尝试在本地访问环境变量时,我只得到空值。我肯定做错了什么,因为我确信其他人必须使用环境变量。

标签: javaintellij-ideaaws-lambdaenvironment-variables

解决方案


所以当然在花了一整天的时间之后,在我发帖 30 分钟后,我找到了答案。

看来您不能只将环境变量添加到 AWS lambda 的运行时配置中。相反,您还必须将其作为环境变量添加到 template.yaml。下面是配置了三个环境变量(myvariable1、myvariable2、myvariable3)的示例 template.yaml。希望这可以节省我一整天的时间来解决这个问题。

`

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: My test project.
Resources:
  MyAwesomeFunction:
    Type: 'AWS::Serverless::Function'
    Properties:
      FunctionName: MyAwesomeFunction
      Handler: com.lambda.MyAwesome
      Runtime: java11
      CodeUri: .
      Description: Does some really amazing things.
      MemorySize: 512
      Timeout: 30
      Environment:
        Variables:
          myvariable1:
          myvariable2:
          myvariable3:

`


推荐阅读