wxauto-serverless 实现了一个极简的基于 Flask 的轻量级无服务器函数运行时,支持动态部署和调用 Python 函数。它还集成了日志记录功能,便于调试和监控。
- 动态部署函数:通过
/deploy接口上传和注册 Python 函数。 - 调用已部署函数:通过
/invoke/<name>接口调用已注册的函数。 - 查看已部署函数:通过
/list接口获取所有已注册函数的列表。 - 日志管理:通过
/logs接口查看最近的执行日志。
wxauto-serverless/
├── deployed/ # 存储已部署的函数代码
├── logs/ # 存储执行日志
├── main.py # 主程序文件
├── registry.json # 注册表文件,记录已部署函数的元信息
└── README.md # 项目说明文件
URL: /deploy
方法: POST
参数:
name(字符串): 函数名称。code(字符串): 函数代码,需包含handler(params)函数。runtime(可选,字符串): 运行时环境,默认为direct。meta(可选,JSON 对象): 函数的元信息。
示例请求:
POST /deploy
{
"name": "send_msg",
"code": "def handler(params): print(params)",
"runtime": "direct",
"meta": {"description": "发送消息"}
}响应:
{
"status": "deployed",
"function": "send_msg"
}URL: /invoke/<name>
方法: POST
参数: 函数的输入参数 (JSON 对象)。
示例请求:
POST /invoke/send_msg
{
"to": "Alice",
"msg": "Hello, Alice!"
}响应:
{
"status": "executed",
"output": "✅ 消息已发送:Hello, Alice! → Alice"
}URL: /list
方法: GET
响应:
{
"functions": ["send_msg"]
}URL: /logs
方法: GET
响应:
{
"log": "✅ 消息已发送:Hello, Alice! → Alice"
}-
克隆项目到本地:
git clone https://github.com/your-repo/wxauto-serverless.git cd wxauto-serverless -
安装依赖:
pip install flask wxauto
-
启动服务:
python main.py
-
服务将运行在
http://0.0.0.0:5001。
- 部署的函数代码必须包含
handler(params)函数作为入口。 - 日志文件存储在
logs/目录下,按时间戳命名。 - 确保
wxauto模块已正确安装并配置微信客户端。
以下是一个示例函数 send_msg,用于通过微信发送消息:
def handler(params):
from wxauto import WeChat
if "to" not in params或 "msg" not in params:
raise ValueError("缺少必要参数:to 或 msg")
wx = WeChat()
wx.SendMsg(params["msg"], params["to"])
print(f"✅ 消息已发送:{params['msg']} → {params['to']}")将此代码通过 /deploy 接口上传后,即可通过 /invoke/send_msg 调用。
欢迎提交 Issue 和 Pull Request 来改进此项目!