使用Zappa将烧瓶应用转化为aws-lambda



我有一个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进行部署

请参阅此最小烧瓶zappa教程了解更多信息。

如果我缺少什么东西,并且您真的必须传递zappa_settings.json文件,您不能传递它,但您可以在存储库中保留一个备份作为zappa_settings.json.backup,在zappa init之后,您可以调用cp zappa_settings.json.backup zappa_settings.json。这将避免您一次又一次从头开始创建该文件。

相关内容

  • 没有找到相关文章

最新更新