在自己挣扎之后,我意识到这个想法是打包你的其他代码,安装在你的虚拟环境中,让 app.py 只是一个调用你其他函数的驱动程序。
这是一个使用 Flask 的具体最小示例。首先,让我们用另一个文件扩展您的示例setup.py
:
|-app.py
|-zappa_settings.json
|-setup.py
|-helper
|-api.py
|-__init.py__
__init__.py
是空的。其余文件如下:
# setup.py
from setuptools import setup
setup(
name='helper',
packages=['helper'],
include_package_data=True,
install_requires=['flask']
)
# app.py
from helper import api
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return api.index()
# helper/api.py
def index():
return "This is the index content"
# zappa_settings.json
{
"dev": {
"app_function": "app.app",
"s3_bucket": "my_bucket"
}
}
现在你pip install -e .
在你的虚拟环境中。如果你现在app.py
使用 Flask 运行并运行http://127.0.0.1:5000/
,你会看到你得到了This is the index content
. 如果你deploy
使用 Zappa,你会看到你的 API 端点做同样的事情。