Куда zappa загружает переменные среды? - PullRequest
3 голосов
/ 13 февраля 2020

tl; dr

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

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 Документы CLI: https://docs.aws.amazon.com/cli/latest/reference/lambda/get-function-configuration.html

1 Ответ

2 голосов
/ 13 февраля 2020

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

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

...