Project Icon

aws-lambda-handler-cookbook

AWS Lambda Python处理程序开源项目模板

aws-lambda-handler-cookbook项目为AWS Lambda Python处理程序提供了完整的开源代码模板。项目包含CDK部署代码、CI/CD流水线,并实现了多项Serverless最佳实践。集成了API网关、DynamoDB、WAF和CloudWatch等AWS服务,为开发者快速构建Serverless应用提供了全面的参考蓝图。

AWS Lambda处理程序食谱(Python)

license PythonSupport codecov version github-star-badge OpenSSF Scorecard issues

alt text

这个项目提供了一个工作的、基于开源的AWS Lambda处理程序框架Python代码,包括使用CDK进行部署的代码和管道。

这个项目可以作为新的无服务器服务的蓝图 - CDK部署代码、管道和处理程序都已包括在内。

📜文档 | 博客网站

联系方式 | mailto:ran.isenberg@ranthebuilder.cloud

Twitter Follow Website

AWS建议

该存储库在AWS博客文章加速使用无服务器蓝图开发的最佳实践中推荐使用。

aws_article

概念

我在AWS re:invent 2023大会上与前AWS Lambda Powertools首席架构师Heitor Lessa一起讨论了我在这个项目中实现的概念。

观看视频

入门

您可以从这个蓝图存储库开始构建一个干净的服务,而无需使用GitHub上的"模板"按钮。

您可以使用Cookiecutter。

  • Cookiecutter - 使用pip/brew安装 brew install cookiecutterpip install cookiecutter

然后运行:

cookiecutter gh:ran-isenberg/cookiecutter-serverless-python

回答问题以选择存储库名称、服务名称等:

logo

就这样,您的开发环境已经准备好了!现在可以部署服务了:

cd {new repo folder}
poetry shell
make deploy

您还可以运行'make pr'来运行所有检查、合成、文件格式化、单元测试、部署到AWS,并运行集成和E2E测试。

问题

启动无服务器服务可能会让人不知所措。您需要解决许多与您的业务领域无关的问题和挑战:

  • 如何部署到云端?您选择哪个IAC框架?
  • 如何编写面向SaaS的CI/CD管道?它需要包含什么?
  • 如何处理可观测性、日志记录、跟踪和指标?
  • 如何编写Lambda函数?
  • 如何处理测试?
  • 什么使AWS Lambda处理程序具有弹性、可追踪性和易维护性?如何编写这样的代码?

解决方案

这个项目旨在减轻认知负担,并通过提供一个Python无服务器服务骨架,实现AWS Lambda、无服务器CI/CD和AWS CDK的最佳实践,来回答这些问题。

无服务器服务 - 订单服务

  • 这个项目提供了一个工作的订单服务,客户可以在其中创建商品订单。

  • 该项目部署了一个API GW,其中有一个AWS Lambda集成,位于路径POST /api/orders/,并将数据存储在DynamoDB表中。 design

监控设计

monitoring_design

功能

  • 具有推荐文件结构的 Python Serverless 服务。
  • 带有基础设施测试和安全测试的 CDK 基础设施。
  • 基于 Github 操作的 CI/CD 管道,使用 Python 语法检查器、复杂性检查和样式格式化程序部署到 AWS。
  • CI/CD 管道将应用部署到开发/暂存和生产环境,每个环境之间有不同的准入标准。
  • 针对开发者的 Makefile。
  • AWS Lambda 处理程序体现了 Serverless 最佳实践,并拥有所有适合生产环境的功能。
  • AWS Lambda 处理程序使用 AWS Lambda Powertools
  • AWS Lambda 处理程序具有 3 层架构:处理层、逻辑层和数据访问层。
  • 基于 AWS AppConfig 的功能标志和配置。
  • 幂等 API。
  • 生产部署中使用 WAF 保护的 REST API,具有四条 AWS 托管规则。
  • CloudWatch 仪表板 - 高级和低级,包括 CloudWatch 报警。
  • 单元测试、基础设施测试、安全测试、集成测试和端到端测试。
  • 自动生成的 OpenAPI 端点:/swagger,具有用于请求和响应的 Pydantic 模式。
  • CI Swagger 保护 - 如果您的 Swagger JSON 文件(存储在 docs/swagger/openapi.json)过时,将导致 PR 失败。
  • 自动防范 API 破坏性变更。

CDK 部署

CDK 代码创建一个 API GW,路径为 /api/orders,触发 lambda 上的 'POST' 请求。

AWS Lambda 处理程序使用 Lambda 层优化,将 Pipfile 中 [packages] 部分的所有包通过 Docker 实例下载。

这允许您打包任何自定义依赖项,只需将它们添加到 Pipfile 的 [packages] 部分。

Serverless 最佳实践

AWS Lambda 处理程序将实现多种最佳实践实用程序。

每个实用程序在发布新博客文章时实现。

这些实用程序涵盖了生产就绪服务的多个方面,包括:

入门指南

访问 GitHub 页面上的完整项目文档页面,网址为 https://ran-isenberg.github.io/aws-lambda-handler-cookbook

代码贡献

欢迎代码贡献。阅读这个指南

行为准则

阅读我们的行为准则这里

联系

致谢

许可证

本库采用 MIT 许可证授权。查看许可证文件。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号