Переменные среды, установленные в файле Buildspec.yml, не отображаются в среде при сборке (AWS Lambda / CodeStar)

Сначала немного фона. Мы создаем приложение в 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

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
Другие вопросы по тегам