Buildspec.yml文件中设置的环境变量在构建时未在环境中显示(AWS Lambda / CodeStar)

时间:2018-02-21 00:55:22

标签: python aws-lambda aws-codestar

首先是一点背景。我们正在使用CodeStar在AWS中构建应用程序来控制所有内容。它是用Python 3编写的

但是,尽管每次尝试我们都无法获取我们在buildspec.yml文件中设置的变量,以便在部署代码时在环境中显示。

例如,以下内容基本上是buildspec.yml文件。

    version: 0.2

      env:
        variables:
            PASSWORD: "abc123"

      artifacts:
        type: zip
        files:
          - template-export.yml
          - '**/*'

然后我们构建一个函数来打印整个环境变量MY_VAR没有在变量中显示。我们使用的代码基本上是这样的:

    import os

    def handler(event, context):
      PASSWORD1 = str(os.environ["PASSWORD"])
      print(PASSWORD1)

尽我所知,它目前有一个角色,它赋予它完全的权限。我相信这有一个简单的解决方案,但截至目前我们还没有找到它 - 尽管花在试图让它上班的时间

非常感谢任何帮助或指示。

注意 - 这看起来非常类似于:

AWS Lambda is not reading environment variables

但我们想要在yaml文件中设置变量,而不是通过Lambda配置区域

1 个答案:

答案 0 :(得分:1)

如果您有template.yaml文件,请将我们的环境变量放在该文件中。在您的Resource的属性中包含一个名为Environment的属性,其中包含一个名为Variables的子属性。这是我们使用的类似示例。

  LambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./src
      Handler: lambda_function.lambda_handler
      MemorySize: 1024
      Timeout: 3
      Environment:
        Variables:
          LOG_LEVEL: DEBUG