AWS Chalice:多个 python 文件中的路由

Luí*_*chi 1 aws-lambda chalice

我正在启动 AWS Lambda,并且爱上了 Chalice。据我了解,它与 Flask 具有相同的想法,但使用所有请求“无服务器”。我想将一个复杂的结构与几个 lambda 脚本文件放在一起。我找不到这样的例子。

\n\n

在此处的更新说明中,它说从 0.4 版本开始添加的内容似乎正是我正在寻找的内容。在这个例子中,它展示了如何从文件中提取数据从“chalicelib”文件夹

\n\n

遵循这个逻辑可以在“chalicelib”中创建多个文件夹,就好像每个文件夹代表我的应用程序的一个模块,并且在文件夹中每个文件将是带有一段源代码的路径?

\n\n
\n\n

我想知道这是否是一个可行的解决方案:

\n\n
app/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chalicelib\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 users\n    \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n    \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 route.py\n    \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 controller.py\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 teams\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parameters.py\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 controller.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用程序.py:

\n\n
import chalicelib\n
Run Code Online (Sandbox Code Playgroud)\n\n

chalicelib > __init__.py:

\n\n
from . import users, teams\n
Run Code Online (Sandbox Code Playgroud)\n\n

chalicelib > 用户 > __init__.py:

\n\n
from . import route\n
Run Code Online (Sandbox Code Playgroud)\n\n

chalicelib>用户>route.py:

\n\n
from app import app\nfrom . import controller\n\n@app.route("/users/test")\ndef test():\n    return controller.test()\n
Run Code Online (Sandbox Code Playgroud)\n

小智 5

Chalice 有一个称为蓝图的功能。Chalice蓝图在概念上与 Flask 中的蓝图类似。蓝图用于将应用程序组织成逻辑组件。使用蓝图,您可以在 app.py 外部的模块中定义资源和装饰器。然后,您可以在主 app.py 文件中注册一个蓝图。蓝图支持应用程序对象上可用的任何装饰器。使用蓝图,您可以在多个文件中定义路线。