使用 Zappa 将烧瓶应用程序转换为 aws lambda

convert flask application into aws lambda using Zappa

我有一个 flask_application 可以完成一些简单的任务。

我的要求: 我想在 zappa

的帮助下将此 flask_application 部署为 aws lambda_function

为了 运行 我的 flask_application 作为 lambda 函数,我正在执行

  1. zappa 初始化
  2. zappa 包

然后我将该压缩文件上传到 lambda 并 运行我的 lambda 函数。

我的问题: 每当我 运行 zappa init 命令时,它都会创建一个 zappa_setting.json 文件,其中包含如下信息

{
    "dev": {
        "app_function": "flask.main.app",
        "aws_region": "us-east-1",
        "profile_name": "dev",
        "project_name": "flask",
        "runtime": "python3.6",
        "s3_bucket": "zappa-p5m0kuurp"
    }
}

我有 3 个 aws 环境,每个环境都有单独的存储桶,例如

test  ==> zappa_test_bucket
stage ==> zappa_stage_bucket
prod  ==> zappa_prod_bucket

我想通过提供自定义 zappa_settings.json.

在所有 3 个 aws 环境中部署我的 flask 应用程序

问题: 有没有办法提供 zappa_settings.json 作为文件,然后每当我 运行 zappa init,zappa 将把这个文件作为输入并根据环境设置这些环境变量。

zappa_settings.json

{
    "test": {
        "app_function": "flask.main.app",
        "aws_region": "us-east-1",
        "profile_name": "dev",
        "project_name": "flask",
        "runtime": "python3.6",
        "s3_bucket": "zappa_test_bucket"
    },
        "stage": {
        "app_function": "flask.main.app",
        "aws_region": "us-east-1",
        "profile_name": "dev",
        "project_name": "flask",
        "runtime": "python3.6",
        "s3_bucket": "zappa_stage_bucket"
    },

    "prod": {
        "app_function": "flask.main.app",
        "aws_region": "us-east-1",
        "profile_name": "dev",
        "project_name": "flask",
        "runtime": "python3.6",
        "s3_bucket": "zappa_prod_bucket"
    }


}

如果有人有想法,请告诉我

据我了解,您每次部署代码时都使用 zappa init。之后你 upload your code to lambda 手动。

您必须充分利用 zappa 的功能:

  • 只使用一次zappa init
  • 只需更新一次 zappa_settings.json 文件。
  • 从现在开始,使用 zappa deploy dev/stage/prod
  • 进行部署

查看此最小值 flask zappa tutorial 以了解更多信息。

如果我遗漏了什么,而你真的必须传递 zappa_settings.json 文件,你不能传递它,但你可以在你的存储库中保留一个备份作为 zappa_settings.json.backup 并在之后zappa init你可以打电话给cp zappa_settings.json.backup zappa_settings.json。这将使您免于一次又一次地从头开始创建该文件。