跳转到主要内容

未提供项目描述

项目描述

斯密思

斯密思是一个多功能的工具,旨在增强您的AWS Lambda开发体验。它是一个纯Python工具,允许轻松自定义和状态持久化,使您的Lambda开发更加高效和开发者友好。

特性

  • 纯Python:完全用Python编写,允许根据特定需求进行灵活定制。
  • 可定制性:根据需要修改事件和上下文数据结构。
  • 状态持久化:模拟冷启动和热启动,在调用之间保留状态,模拟实际的AWS Lambda行为。
  • 效率:优化且高效,仅依靠Python进行代码执行。
  • 受Serverless框架启发:结合Serverless框架的见解设计,有效地管理无服务器应用程序。
  • 开发者友好:与常见的开发工具和实践无缝集成,例如 PDB、iPDB、VSCode 调试和 .env 文件支持。

安装

使用 Poetry 或 pip 将 Smyth 安装为开发依赖项

Poetry

poetry add --group dev smyth

pip

pip install smyth

在您的 Lambda 项目的 pyproject.toml 文件中定义以下设置

[tool.smyth]
host = "0.0.0.0"
port = 8080

[tool.smyth.handlers.saleor_handler]
handler_path = "my_project.handlers.saleor.handler.saleor_http_handler"
url_path = "/saleor/{path:path}"

使用以下命令运行 Smyth

python -m smyth

使用 Docker 一起工作

假设您已经使用 Poetry 安装了它,您可以从此存储库中使用 Dockerfile.exampledocker-compose.example.yml 文件开始。

使用 VS Code 一起工作

要使用 Smyth 工具利用 VS Code 调试器,您可以按如下方式设置您的 launch.json 配置文件。此设置将使您能够直接在 VS Code 中调试 Lambda 函数,提供无缝的开发体验。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Debugger: Module",
            "type": "debugpy",
            "request": "launch",
            "module": "smyth",
            "args": ["run"],
        }
    ]
}

注意事项

Uvicorn 重载进程和 HTTP 服务器进程的组合与 Lambda 进程中进行的操作很复杂。如果 Lambda 进程正在执行某些操作,而 HTTP 服务器在不适当的时刻被终止,则很可能破坏您的终端。此问题尚未解决。最好在 Docker 容器中使用或在手边有 kill -9 {Uvicorn 重载进程的 PID} 的能力。

待办事项

  • 编写测试
  • 正确处理 Uvicorn 退出,优雅地终止 Lambda 进程
  • 在 PyPi 上发布

名称

这个名字将 "Smith"(如铁匠,在锻造厂工作的人)与 "Py"(代表 Python)结合起来,拼写改为 "Smyth"。铁匠是工匠,他们在锻造厂用金属工作,将其塑造成所需的形状。"Smyth" 暗示一个工具,可以帮助开发者在 Python 编程领域用铁匠的精确和技能来构建和塑造他们的无服务器项目。这个名字保留了锻造厂中固有的工艺和转变的本质,同时与 Python 相关。

由 Mirumee Software 用 ❤️ 制作 hello@mirumee.com

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

smyth-0.5.0.tar.gz (43.5 kB 查看哈希)

上传时间

构建分布

smyth-0.5.0-py3-none-any.whl (16.1 kB 查看哈希)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面