1

首先介绍一点背景。我们正在 AWS 中构建一个应用程序,使用 CodeStar 来控制一切。它是用 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 未读取环境变量

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

4

1 回答 1

1

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

  LambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./src
      Handler: lambda_function.lambda_handler
      MemorySize: 1024
      Timeout: 3
      Environment:
        Variables:
          LOG_LEVEL: DEBUG
于 2018-03-28T20:31:03.537 回答