这个项目提供了一个工作的、基于开源的AWS Lambda处理程序框架Python代码,包括使用CDK进行部署的代码和管道。
这个项目可以作为新的无服务器服务的蓝图 - CDK部署代码、管道和处理程序都已包括在内。
联系方式 | mailto:ran.isenberg@ranthebuilder.cloud
该存储库在AWS博客文章加速使用无服务器蓝图开发的最佳实践中推荐使用。
我在AWS re:invent 2023大会上与前AWS Lambda Powertools首席架构师Heitor Lessa一起讨论了我在这个项目中实现的概念。
您可以从这个蓝图存储库开始构建一个干净的服务,而无需使用GitHub上的"模板"按钮。
您可以使用Cookiecutter。
brew install cookiecutter
或 pip install cookiecutter
然后运行:
cookiecutter gh:ran-isenberg/cookiecutter-serverless-python
回答问题以选择存储库名称、服务名称等:
就这样,您的开发环境已经准备好了!现在可以部署服务了:
cd {new repo folder} poetry shell make deploy
您还可以运行'make pr'来运行所有检查、合成、文件格式化、单元测试、部署到AWS,并运行集成和E2E测试。
启动无服务器服务可能会让人不知所措。您需要解决许多与您的业务领域无关的问题和挑战:
这个项目旨在减轻认知负担,并通过提供一个Python无服务器服务骨架,实现AWS Lambda、无服务器CI/CD和AWS CDK的最佳实践,来回答这些问题。
这个项目提供了一个工作的订单服务,客户可以在其中创建商品订单。
该项目部署了一个API GW,其中有一个AWS Lambda集成,位于路径POST /api/orders/,并将数据存储在DynamoDB表中。
<br></br>
<br></br>
CDK 代码创建一个 API GW,路径为 /api/orders,触发 lambda 上的 'POST' 请求。
AWS Lambda 处理程序使用 Lambda 层优化,将 Pipfile 中 [packages] 部分的所有包通过 Docker 实例下载。
这允许您打包任何自定义依赖项,只需将它们添加到 Pipfile 的 [packages] 部分。
AWS Lambda 处理程序将实现多种最佳实践实用程序。
每个实用程序在发布新博客文章时实现。
这些实用程序涵盖了生产就绪服务的多个方面,包括:
访问 GitHub 页面上的完整项目文档页面,网址为 https://ran-isenberg.github.io/aws-lambda-handler-cookbook
欢迎代码贡献。阅读这个指南。
阅读我们的行为准则这里。