zappa上传环境变量到哪里?

Where does zappa upload environment variables to?

tl;dr

zappa_settings.json 中设置的环境变量不会作为环境变量上传到 AWS Lambda。他们去哪儿了?

ts;wm

我使用 Zappa 框架配置、部署和管理了一个 Lambda 函数。在zappa_settings.json我设置了一些环境变量。当我的应用程序成功运行时,这些变量肯定存在,但是,当尝试在控制台或 AWS CLI 中检查 Lambda 函数环境变量时,我发现没有环境变量已上传到 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 中,但输出中不存在

Environment 并且 AWS 文档指示它应该包含在存在的情况下,这可以通过检查控制台来确认。我想知道 zappa 将环境变量上传到哪里,如果可能的话,为什么它使用 Lambda 的内置环境这样做?

AWS CLI 文档: https://docs.aws.amazon.com/cli/latest/reference/lambda/get-function-configuration.html

environment_variables 在创建部署包时保存在 zappa_settings.py 中(运行 zappa package STAGE 并浏览存档)然后通过修改handler.py.

中的os.environ动态设置为环境变量

要设置原生 AWS 变量,您需要使用 aws_environment_variables