{"id":13498735,"url":"https://github.com/phodal/serverless","last_synced_at":"2025-05-16T03:04:28.759Z","repository":{"id":41371378,"uuid":"108714160","full_name":"phodal/serverless","owner":"phodal","description":"Serverless 架构应用开发指南 - Serverless Architecture Application Development Guide with Serverless Framework.","archived":false,"fork":false,"pushed_at":"2022-10-27T04:53:31.000Z","size":7043,"stargazers_count":1751,"open_issues_count":10,"forks_count":201,"subscribers_count":55,"default_branch":"master","last_synced_at":"2025-04-07T10:19:12.113Z","etag":null,"topics":["aws-lambda","dynamodb","ebook","serverless","serverless-aws-iot","serverless-framework"],"latest_commit_sha":null,"homepage":"https://serverless.ink","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phodal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://book.douban.com/subject/33477112/"]}},"created_at":"2017-10-29T07:31:03.000Z","updated_at":"2025-03-25T06:40:38.000Z","dependencies_parsed_at":"2022-08-10T02:07:03.056Z","dependency_job_id":null,"html_url":"https://github.com/phodal/serverless","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fserverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fserverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fserverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fserverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phodal","download_url":"https://codeload.github.com/phodal/serverless/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459088,"owners_count":22074605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","dynamodb","ebook","serverless","serverless-aws-iot","serverless-framework"],"created_at":"2024-07-31T21:00:41.898Z","updated_at":"2025-05-16T03:04:23.718Z","avatar_url":"https://github.com/phodal.png","language":"HTML","readme":"Serverless 架构应用开发指南\n===\n\n\u003e Serverless 架构是指大量依赖第三方服务（也叫做后端即服务，即“BaaS”）或暂存容器中运行的自定义代码（函数即服务，即“FaaS”）的应用程序，函数是无服务器架构中抽象语言运行时的最小单位。在这种架构中，我们并不看重运行一个函数需要多少 CPU 或 RAM 或任何其他资源，而是更看重运行函数所需的时间，我们也只为这些函数的运行时间付费。[^serverless]\n\n[^serverless]: http://www.infoq.com/cn/news/2017/04/2017-Serverless\n\n``注意事项``\n\n在本系列的文章中，主要采用了 Serverless Framework 来简化开发和部署流程。\n\n\u003e Serverless Framework是无服务器应用框架和生态系统，旨在简化开发和部署AWS Lambda应用程序的工作。Serverless Framework 作为 Node.js NPM 模块提供，填补了AWS Lambda 存在的许多缺口。它提供了多个样本模板，可以迅速启动 AWS Lambda 开发。\n\nArchitecture\n---\n\n![Serverless Application Architecture](images/serverless-spa-architecture.png)\n\n目录\n---\n\n*   [Serverless 架构应用开发指南](http://serverless.ink/#serverless-架构应用开发指南)\n*   [Serverless 架构](http://serverless.ink/#serverless-架构)\n    *   [什么是 Serverless 架构？？](http://serverless.ink/#什么是-serverless-架构)\n        *   [虚拟化与隔离](http://serverless.ink/#虚拟化与隔离)\n        *   [为什么是花了 1000G ？](http://serverless.ink/#为什么是花了-1000g)\n        *   [Serverless 是什么？](http://serverless.ink/#serverless-是什么)\n        *   [事件驱动编程](http://serverless.ink/#事件驱动编程)\n    *   [Serverless 的优势](http://serverless.ink/#serverless-的优势)\n        *   [降低启动成本](http://serverless.ink/#降低启动成本)\n        *   [实现快速上线](http://serverless.ink/#实现快速上线)\n        *   [系统安全性更高](http://serverless.ink/#系统安全性更高)\n        *   [适应微服务架构](http://serverless.ink/#适应微服务架构)\n        *   [自动扩展能力](http://serverless.ink/#自动扩展能力)\n    *   [Serverless 的问题](http://serverless.ink/#serverless-的问题)\n        *   [不适合长时间运行应用](http://serverless.ink/#不适合长时间运行应用)\n        *   [完全依赖于第三方服务](http://serverless.ink/#完全依赖于第三方服务)\n        *   [冷启动时间](http://serverless.ink/#冷启动时间)\n        *   [缺乏调试和开发工具](http://serverless.ink/#缺乏调试和开发工具)\n        *   [构建复杂](http://serverless.ink/#构建复杂)\n        *   [语言版本落后](http://serverless.ink/#语言版本落后)\n    *   [Serverless 的适用场景](http://serverless.ink/#serverless-的适用场景)\n        *   [发送通知](http://serverless.ink/#发送通知)\n        *   [WebHook](http://serverless.ink/#webhook)\n        *   [轻量级 API](http://serverless.ink/#轻量级-api)\n        *   [物联网](http://serverless.ink/#物联网)\n        *   [数据统计分析](http://serverless.ink/#数据统计分析)\n        *   [Trigger 及定时任务](http://serverless.ink/#trigger-及定时任务)\n        *   [精益创业](http://serverless.ink/#精益创业)\n        *   [Chat 机器人](http://serverless.ink/#chat-机器人)\n    *   [其它](http://serverless.ink/#其它)\n        *   [迁移方案](http://serverless.ink/#迁移方案)\n        *   [Serverless Framework](http://serverless.ink/#serverless-framework)\n        *   [Apex](http://serverless.ink/#apex)\n        *   [Apache OpenWhisk](http://serverless.ink/#apache-openwhisk)\n*   [Serverless 的 hello, world](http://serverless.ink/#serverless-的-hello-world)\n    *   [Serverless 框架 hello, world](http://serverless.ink/#serverless-框架-hello-world)\n        *   [一、安装 serverless 框架](http://serverless.ink/#一安装-serverless-框架)\n        *   [二、设置 aws 凭证。](http://serverless.ink/#二设置-aws-凭证)\n        *   [三、创建 hello-world 服务](http://serverless.ink/#三创建-hello-world-服务)\n        *   [四、部署及测试：](http://serverless.ink/#四部署及测试)\n*   [AWS Lambda 动态编程返回 HTML](http://serverless.ink/#aws-lambda-动态编程返回-html)\n*   [将网站部署到 S3 上](http://serverless.ink/#将网站部署到-s3-上)\n    *   [配置 serverless-finch](http://serverless.ink/#配置-serverless-finch)\n    *   [静态内容](http://serverless.ink/#静态内容)\n*   [为基于 S3 的网站支持 CRUD](http://serverless.ink/#为基于-s3-的网站支持-crud)\n    *   [概念：API Gateway 与 S3](http://serverless.ink/#概念api-gateway-与-s3)\n    *   [基于 S3 的 Serverless CRUD](http://serverless.ink/#基于-s3-的-serverless-crud)\n    *   [上传原理](http://serverless.ink/#上传原理)\n    *   [Serverless S3 CRUD 示例](http://serverless.ink/#serverless-s3-crud-示例)\n*   [结合 DynamoDB 数据库创建 RESTful API](http://serverless.ink/#结合-dynamodb-数据库创建-restful-api)\n    *   [Serverless DynamoDB 示例配置](http://serverless.ink/#serverless-dynamodb-示例配置)\n    *   [Serverless DynamoDB 示例代码](http://serverless.ink/#serverless-dynamodb-示例代码)\n    *   [Serverless DynamoDB 部署](http://serverless.ink/#serverless-dynamodb-部署)\n    *   [Serverless DynamoDB 测试](http://serverless.ink/#serverless-dynamodb-测试)\n    *   [其它操作](http://serverless.ink/#其它操作)\n*   [Express 实现 Serverless 的 React 服务端渲染](http://serverless.ink/#express-实现-serverless-的-react-服务端渲染)\n    *   [Serverless + Express](http://serverless.ink/#serverless-express)\n    *   [Express + React 进行服务端渲染](http://serverless.ink/#express-react-进行服务端渲染)\n*   [Serverless 的微信公共平台后台](http://serverless.ink/#serverless-的微信公共平台后台)\n    *   [创建 Serverless 服务](http://serverless.ink/#创建-serverless-服务)\n    *   [引入 node-wechat](http://serverless.ink/#引入-node-wechat)\n    *   [配置 APP_ID 和 TOKEN 等](http://serverless.ink/#配置-app_id-和-token-等)\n    *   [配置 Route 53 与 API Gateway](http://serverless.ink/#配置-route-53-与-api-gateway)\n    *   [添加微信公众平号服务](http://serverless.ink/#添加微信公众平号服务)\n    *   [部署](http://serverless.ink/#部署)\n*   [基于 Kinesis Streams 的数据流分析](http://serverless.ink/#基于-kinesis-streams-的数据流分析)\n    *   [Amazon Kinesis Streams](http://serverless.ink/#amazon-kinesis-streams)\n    *   [Serverless + Kinesis Streams](http://serverless.ink/#serverless-kinesis-streams)\n*   [Serverless 数据分析，Kinesis Firehose 持久化数据到 S3](http://serverless.ink/#serverless-数据分析kinesis-firehose-持久化数据到-s3)\n    *   [Serverless Kinesis Firehose 代码](http://serverless.ink/#serverless-kinesis-firehose-代码)\n    *   [安装及测试](http://serverless.ink/#安装及测试)\n*   [创建邮件发送 API](http://serverless.ink/#创建邮件发送-api)\n    *   [Serverless Email 发送](http://serverless.ink/#serverless-email-发送)\n    *   [Serverless Email 发送测试](http://serverless.ink/#serverless-email-发送测试)\n*   [创建自己的 Serverless 短链服务](https://www.phodal.com/blog/serverless-architecture-develoment-create-self-short-url-services/)\n    *   [代码逻辑](http://serverless.ink/#代码逻辑)\n    *   [创建首页](http://serverless.ink/#创建首页)\n    *   [生成短链](http://serverless.ink/#生成短链)\n        *   [解析出提交表单中的链接](http://serverless.ink/#解析出提交表单中的链接)\n        *   [根据 URL 生成对应的短链](http://serverless.ink/#根据-url-生成对应的短链)\n        *   [存储到 Dynamo 数据库中。](http://serverless.ink/#存储到-dynamo-数据库中)\n        *   [返回短链给用户](http://serverless.ink/#返回短链给用户)\n    *   [重定向短链](http://serverless.ink/#重定向短链)\n    *   [部署及测试短链服务](http://serverless.ink/#部署及测试短链服务)\n*   [结合 Auth0 的登录、授权系统](http://serverless.ink/#结合-auth0-的登录授权系统)\n    *   [Serverless Auth0 前端代码](http://serverless.ink/#serverless-auth0-前端代码)\n    *   [Serverless Auth0 后台代码](http://serverless.ink/#serverless-auth0-后台代码)\n        *   [serverless.yml 配置](http://serverless.ink/#serverless.yml-配置)\n    *   [配置及部署](http://serverless.ink/#配置及部署)\n        *   [清理](http://serverless.ink/#清理)\n    *   [结论](http://serverless.ink/#结论)\n*   [在本地部署与调试](http://serverless.ink/#在本地部署与调试)\n    *   [serverless-offline](http://serverless.ink/#serverless-offline)\n    *   [本地搭建 serverless-offline 与 DynamoDB 环境](http://serverless.ink/#本地搭建-serverless-offline-与-dynamodb-环境)\n    *   [本地测试 serverless-offline 与 DynamoDB](http://serverless.ink/#本地测试-serverless-offline-与-dynamodb)\n*   [如何编写 Serverless 应用的测试](http://serverless.ink/#如何编写-serverless-应用的测试)\n    *   [Serverless 应用的测试](http://serverless.ink/#serverless-应用的测试)\n    *   [步骤](http://serverless.ink/#步骤)\n        *   [创建测试](http://serverless.ink/#创建测试)\n        *   [运行测试](http://serverless.ink/#运行测试)\n        *   [更准确的测试](http://serverless.ink/#更准确的测试)\n    *   [结论](http://serverless.ink/#结论-1)\n*   [多个语言运行环境](http://serverless.ink/#多个语言运行环境)\n    *   [Serverless 多个语言运行环境](http://serverless.ink/#serverless-多个语言运行环境)\n    *   [部署及测试](http://serverless.ink/#部署及测试)\n*   [Serverless 开发物联网应用](http://serverless.ink/#serverless-开发物联网应用)\n    *   [Serverless 框架安装服务](http://serverless.ink/#serverless-框架安装服务)\n    *   [部署 AWS IoT Serverless 服务](http://serverless.ink/#部署-aws-iot-serverless-服务)\n    *   [查看日志](http://serverless.ink/#查看日志)\n*   [使用 warmup 插件保活，避免应用冷启动](http://serverless.ink/#使用-warmup-插件保活避免应用冷启动)\n    *   [使用 serverless-plugin-warmup 保持唤醒](http://serverless.ink/#使用-serverless-plugin-warmup-保持唤醒)\n    *   [部署及测试](http://serverless.ink/#部署及测试-1)\n    *   [结论](http://serverless.ink/#结论-2)\n*   [定时执行任务](http://serverless.ink/#定时执行任务)\n    *   [Serverless 定时任务](http://serverless.ink/#serverless-定时任务)\n        *   [rate 表达式](http://serverless.ink/#rate-表达式)\n        *   [cron 表达式](http://serverless.ink/#cron-表达式)\n    *   [部署](http://serverless.ink/#部署-1)\n*   [使用 Simulate 插件在本地运行 Lambda](http://serverless.ink/#使用-simulate-插件在本地运行-lambda)\n    *   [serverless-plugin-simulate 插件](http://serverless.ink/#serverless-plugin-simulate-插件)\n    *   [安装 serverless-plugin-simulate 及环境](http://serverless.ink/#安装-serverless-plugin-simulate-及环境)\n    *   [运行及测试](http://serverless.ink/#运行及测试)\n*   [使用 GraphQL 实现更好的 API](http://serverless.ink/#使用-graphql-实现更好的-api)\n    *   [GraphQL hello, world](http://serverless.ink/#graphql-hello-world)\n    *   [更复杂的示例](http://serverless.ink/#更复杂的示例)\n        *   [GraphQL 修改 DymanoDB 的值](http://serverless.ink/#graphql-修改-dymanodb-的值)\n*   [Serverless 应用示例：前端错误日志及事件收集系统](http://serverless.ink/#serverless-应用示例前端错误日志及事件收集系统)\n    *   [Molog 使用](http://serverless.ink/#molog-使用)\n    *   [Serverless 错误收集系统架构设计](http://serverless.ink/#serverless-错误收集系统架构设计)\n        *   [架构设计](http://serverless.ink/#架构设计)\n    *   [Molog 系统实现](http://serverless.ink/#molog-系统实现)\n        *   [1\\. 存储日志和事件](http://serverless.ink/#存储日志和事件)\n        *   [2\\. 读取日志](http://serverless.ink/#读取日志)\n    *   [问题](http://serverless.ink/#问题)\n*   [Serverless 应用示例：二维码生成](http://serverless.ink/#serverless-应用示例二维码生成)\n    *   [总览](http://serverless.ink/#总览)\n    *   [生成应用](http://serverless.ink/#生成应用)\n    *   [配置资源](http://serverless.ink/#配置资源)\n    *   [生成二维码](http://serverless.ink/#生成二维码)\n    *   [上传 AWS S3](http://serverless.ink/#上传-aws-s3)\n    *   [优化二维码](http://serverless.ink/#优化二维码)\n    *   [部署及测试](http://serverless.ink/#部署及测试-2)\n\nLicense\n---\n\n[![Phodal's Article](http://brand.phodal.com/shields/article-small.svg)](https://www.phodal.com/) [![Phodal's Book](http://brand.phodal.com/shields/book-small.svg)](https://www.phodal.com/)\n\n\n© 2017 [Phodal Huang](https://www.phodal.com). The **code** is distributed under the MIT License. See `LICENSE` in this directory.\n\n© 2017 [Phodal Huang](https://www.phodal.com). The **content** is distributed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License. See `LICENSE` in this directory.\n\n[待我代码编成，娶你为妻可好](http://www.xuntayizhan.com/blog/ji-ke-ai-qing-zhi-er-shi-dai-wo-dai-ma-bian-cheng-qu-ni-wei-qi-ke-hao-wan/)\n","funding_links":["https://book.douban.com/subject/33477112/"],"categories":["HTML","关联资源推荐"],"sub_categories":["其它"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphodal%2Fserverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphodal%2Fserverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphodal%2Fserverless/lists"}