1

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

我的要求:我想在flask_applicationaws lambda_function 的帮助下部署它zappa

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

  1. 扎帕初始化
  2. 扎帕包

然后我将该压缩文件上传到 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.

问题: 有没有办法以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"
    }


}

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

4

1 回答 1

2

我的理解是每次部署代码时都使用 zappa init 。之后你upload your code to lambda手动。

您必须更充分地使用 zappa 的功能:

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

请参阅这个最小的烧瓶 zappa 教程以了解更多信息。

如果我缺少某些东西并且您确实必须传递zappa_settings.json文件,则无法传递它,但是您可以zappa_settings.json.backupzappa init调用cp zappa_settings.json.backup zappa_settings.json. 这将使您免于一次又一次地从头开始创建该文件。

于 2020-10-09T12:07:11.903 回答