Куда zappa загружает переменные среды?

tl; dr

Переменные среды, заданные в zappa_settings.json, не загружаются как переменные среды в AWS Lambda. Куда они идут?

ts; wm

У меня есть функция Lambda, настроенная, развернутая и управляемая с помощью структуры Zappa. В zappa_settings.json я установил ряд переменных среды. Эти переменные определенно присутствуют, поскольку мое приложение успешно запускается, однако при попытке проверить переменные среды Lambda-функции в консоли или AWS CLI я не вижу, чтобы переменные среды были загружены в саму Lambda-функцию.

Извлечение из zappa_settings.json:

{
  "stage-dev": {
    "app_function": "project.app",
    "project_name": "my-project",
    "runtime": "python3.7",
    "s3_bucket": "my-project-zappa",
    "slim_handler": true,
    "environment_variables": {
      "SECRET": "mysecretvalue"
    }
  }
}

Вывод aws lambda get-function-configuration --function-name my-project-stage-dev:

{
  "Configuration": {
    "FunctionName": "my-project-stage-dev",
    "FunctionArn": "arn:aws:lambda:eu-west-1:000000000000:function:my-project-stage-dev",
    "Runtime": "python3.7",
    "Role": "arn:aws:iam::000000000000:role/lambda-execution-role",
    "Handler": "handler.lambda_handler",
    "CodeSize": 12333025,
    "Description": "Zappa Deployment",
    "Timeout": 30,
    "MemorySize": 512,
    "LastModified": "...",
    "CodeSha256": "...",
    "Version": "$LATEST",
    "TracingConfig": {
      "Mode": "PassThrough"
    },
    "RevisionId": "..."
  },
  "Code": {
    "RepositoryType": "S3",
    "Location": "..."
  }
}

Environment отсутствует в выходных данных, несмотря на то, что он включен в zappa_settings и документацию AWS, указывающую, что он должен быть включен, если он присутствует, это подтверждается проверкой в ​​консоли. Я хочу знать, куда zappa загружает переменные среды и, если возможно, почему это происходит вместо встроенной среды Lambda?

Документы интерфейса командной строки AWS: https://docs.aws.amazon.com/cli/latest/reference/lambda/get-function-configuration.html.


person Josh    schedule 13.02.2020    source источник


Ответы (1)


environment_variables сохраняются в zappa_settings.py при создании пакет для развертывания (запустите zappa package STAGE и изучите архив), а затем динамически устанавливаются как переменные среды путем изменения os.environ в handler.py.

Чтобы установить собственные переменные AWS, вам необходимо использовать aws_environment_variables.

person tmt    schedule 13.02.2020
comment
????????‍♂️ Не могу поверить, что я это пропустил. Спасибо за ссылку и объяснение. - person Josh; 16.02.2020