zappa上传环境变量到哪里?

Jos*_*osh 7 python environment-variables zappa aws-lambda

tl;博士

中设置的环境变量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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

的输出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": "..."
  }
}
Run Code Online (Sandbox Code Playgroud)

Environment尽管包含在 zappa_settings 和 AWS 文档中,表明它应该包含在输出中,但如果存在,则输出中不存在,这是通过在控制台中检查来确认的。我想知道 zappa 将环境变量上传到哪里,如果可能的话,为什么它要使用 Lambda 的内置环境来上传?

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

tmt*_*tmt 5

environment_variables保存在zappa_settings.py创建一个包部署时(运行zappa package STAGE和浏览存档),然后动态地修改设置环境变量os.environhandler.py

要设置本机 AWS 变量,您需要使用aws_environment_variables.