使用 Zappa 将烧瓶应用程序转换为 aws lambda
convert flask application into aws lambda using Zappa
我有一个 flask_application
可以完成一些简单的任务。
我的要求: 我想在 zappa
的帮助下将此 flask_application
部署为 aws lambda_function
为了 运行 我的 flask_application 作为 lambda 函数,我正在执行
- zappa 初始化
- 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
。这将使您免于一次又一次地从头开始创建该文件。
我有一个 flask_application
可以完成一些简单的任务。
我的要求: 我想在 zappa
flask_application
部署为 aws lambda_function
为了 运行 我的 flask_application 作为 lambda 函数,我正在执行
- zappa 初始化
- 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
.
问题:
有没有办法提供 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
。这将使您免于一次又一次地从头开始创建该文件。