# serverless-learning-book **Repository Path**: ray4study/serverless-learning-book ## Basic Information - **Project Name**: serverless-learning-book - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-09 - **Last Updated**: 2024-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Serverless 架构应用开发指南 === > Serverless 架构是指大量依赖第三方服务(也叫做后端即服务,即“BaaS”)或暂存容器中运行的自定义代码(函数即服务,即“FaaS”)的应用程序,函数是无服务器架构中抽象语言运行时的最小单位。在这种架构中,我们并不看重运行一个函数需要多少 CPU 或 RAM 或任何其他资源,而是更看重运行函数所需的时间,我们也只为这些函数的运行时间付费。[^serverless] [^serverless]: http://www.infoq.com/cn/news/2017/04/2017-Serverless ``注意事项`` 在本系列的文章中,主要采用了 Serverless Framework 来简化开发和部署流程。 > Serverless Framework是无服务器应用框架和生态系统,旨在简化开发和部署AWS Lambda应用程序的工作。Serverless Framework 作为 Node.js NPM 模块提供,填补了AWS Lambda 存在的许多缺口。它提供了多个样本模板,可以迅速启动 AWS Lambda 开发。 Architecture --- ![Serverless Application Architecture](images/serverless-spa-architecture.png) 目录 --- * [Serverless 架构应用开发指南](http://serverless.ink/#serverless-架构应用开发指南) * [Serverless 架构](http://serverless.ink/#serverless-架构) * [什么是 Serverless 架构??](http://serverless.ink/#什么是-serverless-架构) * [虚拟化与隔离](http://serverless.ink/#虚拟化与隔离) * [为什么是花了 1000G ?](http://serverless.ink/#为什么是花了-1000g) * [Serverless 是什么?](http://serverless.ink/#serverless-是什么) * [事件驱动编程](http://serverless.ink/#事件驱动编程) * [Serverless 的优势](http://serverless.ink/#serverless-的优势) * [降低启动成本](http://serverless.ink/#降低启动成本) * [实现快速上线](http://serverless.ink/#实现快速上线) * [系统安全性更高](http://serverless.ink/#系统安全性更高) * [适应微服务架构](http://serverless.ink/#适应微服务架构) * [自动扩展能力](http://serverless.ink/#自动扩展能力) * [Serverless 的问题](http://serverless.ink/#serverless-的问题) * [不适合长时间运行应用](http://serverless.ink/#不适合长时间运行应用) * [完全依赖于第三方服务](http://serverless.ink/#完全依赖于第三方服务) * [冷启动时间](http://serverless.ink/#冷启动时间) * [缺乏调试和开发工具](http://serverless.ink/#缺乏调试和开发工具) * [构建复杂](http://serverless.ink/#构建复杂) * [语言版本落后](http://serverless.ink/#语言版本落后) * [Serverless 的适用场景](http://serverless.ink/#serverless-的适用场景) * [发送通知](http://serverless.ink/#发送通知) * [WebHook](http://serverless.ink/#webhook) * [轻量级 API](http://serverless.ink/#轻量级-api) * [物联网](http://serverless.ink/#物联网) * [数据统计分析](http://serverless.ink/#数据统计分析) * [Trigger 及定时任务](http://serverless.ink/#trigger-及定时任务) * [精益创业](http://serverless.ink/#精益创业) * [Chat 机器人](http://serverless.ink/#chat-机器人) * [其它](http://serverless.ink/#其它) * [迁移方案](http://serverless.ink/#迁移方案) * [Serverless Framework](http://serverless.ink/#serverless-framework) * [Apex](http://serverless.ink/#apex) * [Apache OpenWhisk](http://serverless.ink/#apache-openwhisk) * [Serverless 的 hello, world](http://serverless.ink/#serverless-的-hello-world) * [Serverless 框架 hello, world](http://serverless.ink/#serverless-框架-hello-world) * [一、安装 serverless 框架](http://serverless.ink/#一安装-serverless-框架) * [二、设置 aws 凭证。](http://serverless.ink/#二设置-aws-凭证) * [三、创建 hello-world 服务](http://serverless.ink/#三创建-hello-world-服务) * [四、部署及测试:](http://serverless.ink/#四部署及测试) * [AWS Lambda 动态编程返回 HTML](http://serverless.ink/#aws-lambda-动态编程返回-html) * [将网站部署到 S3 上](http://serverless.ink/#将网站部署到-s3-上) * [配置 serverless-finch](http://serverless.ink/#配置-serverless-finch) * [静态内容](http://serverless.ink/#静态内容) * [为基于 S3 的网站支持 CRUD](http://serverless.ink/#为基于-s3-的网站支持-crud) * [概念:API Gateway 与 S3](http://serverless.ink/#概念api-gateway-与-s3) * [基于 S3 的 Serverless CRUD](http://serverless.ink/#基于-s3-的-serverless-crud) * [上传原理](http://serverless.ink/#上传原理) * [Serverless S3 CRUD 示例](http://serverless.ink/#serverless-s3-crud-示例) * [结合 DynamoDB 数据库创建 RESTful API](http://serverless.ink/#结合-dynamodb-数据库创建-restful-api) * [Serverless DynamoDB 示例配置](http://serverless.ink/#serverless-dynamodb-示例配置) * [Serverless DynamoDB 示例代码](http://serverless.ink/#serverless-dynamodb-示例代码) * [Serverless DynamoDB 部署](http://serverless.ink/#serverless-dynamodb-部署) * [Serverless DynamoDB 测试](http://serverless.ink/#serverless-dynamodb-测试) * [其它操作](http://serverless.ink/#其它操作) * [Express 实现 Serverless 的 React 服务端渲染](http://serverless.ink/#express-实现-serverless-的-react-服务端渲染) * [Serverless + Express](http://serverless.ink/#serverless-express) * [Express + React 进行服务端渲染](http://serverless.ink/#express-react-进行服务端渲染) * [Serverless 的微信公共平台后台](http://serverless.ink/#serverless-的微信公共平台后台) * [创建 Serverless 服务](http://serverless.ink/#创建-serverless-服务) * [引入 node-wechat](http://serverless.ink/#引入-node-wechat) * [配置 APP_ID 和 TOKEN 等](http://serverless.ink/#配置-app_id-和-token-等) * [配置 Route 53 与 API Gateway](http://serverless.ink/#配置-route-53-与-api-gateway) * [添加微信公众平号服务](http://serverless.ink/#添加微信公众平号服务) * [部署](http://serverless.ink/#部署) * [基于 Kinesis Streams 的数据流分析](http://serverless.ink/#基于-kinesis-streams-的数据流分析) * [Amazon Kinesis Streams](http://serverless.ink/#amazon-kinesis-streams) * [Serverless + Kinesis Streams](http://serverless.ink/#serverless-kinesis-streams) * [Serverless 数据分析,Kinesis Firehose 持久化数据到 S3](http://serverless.ink/#serverless-数据分析kinesis-firehose-持久化数据到-s3) * [Serverless Kinesis Firehose 代码](http://serverless.ink/#serverless-kinesis-firehose-代码) * [安装及测试](http://serverless.ink/#安装及测试) * [创建邮件发送 API](http://serverless.ink/#创建邮件发送-api) * [Serverless Email 发送](http://serverless.ink/#serverless-email-发送) * [Serverless Email 发送测试](http://serverless.ink/#serverless-email-发送测试) * [创建自己的 Serverless 短链服务](https://www.phodal.com/blog/serverless-architecture-develoment-create-self-short-url-services/) * [代码逻辑](http://serverless.ink/#代码逻辑) * [创建首页](http://serverless.ink/#创建首页) * [生成短链](http://serverless.ink/#生成短链) * [解析出提交表单中的链接](http://serverless.ink/#解析出提交表单中的链接) * [根据 URL 生成对应的短链](http://serverless.ink/#根据-url-生成对应的短链) * [存储到 Dynamo 数据库中。](http://serverless.ink/#存储到-dynamo-数据库中) * [返回短链给用户](http://serverless.ink/#返回短链给用户) * [重定向短链](http://serverless.ink/#重定向短链) * [部署及测试短链服务](http://serverless.ink/#部署及测试短链服务) * [结合 Auth0 的登录、授权系统](http://serverless.ink/#结合-auth0-的登录授权系统) * [Serverless Auth0 前端代码](http://serverless.ink/#serverless-auth0-前端代码) * [Serverless Auth0 后台代码](http://serverless.ink/#serverless-auth0-后台代码) * [serverless.yml 配置](http://serverless.ink/#serverless.yml-配置) * [配置及部署](http://serverless.ink/#配置及部署) * [清理](http://serverless.ink/#清理) * [结论](http://serverless.ink/#结论) * [在本地部署与调试](http://serverless.ink/#在本地部署与调试) * [serverless-offline](http://serverless.ink/#serverless-offline) * [本地搭建 serverless-offline 与 DynamoDB 环境](http://serverless.ink/#本地搭建-serverless-offline-与-dynamodb-环境) * [本地测试 serverless-offline 与 DynamoDB](http://serverless.ink/#本地测试-serverless-offline-与-dynamodb) * [如何编写 Serverless 应用的测试](http://serverless.ink/#如何编写-serverless-应用的测试) * [Serverless 应用的测试](http://serverless.ink/#serverless-应用的测试) * [步骤](http://serverless.ink/#步骤) * [创建测试](http://serverless.ink/#创建测试) * [运行测试](http://serverless.ink/#运行测试) * [更准确的测试](http://serverless.ink/#更准确的测试) * [结论](http://serverless.ink/#结论-1) * [多个语言运行环境](http://serverless.ink/#多个语言运行环境) * [Serverless 多个语言运行环境](http://serverless.ink/#serverless-多个语言运行环境) * [部署及测试](http://serverless.ink/#部署及测试) * [Serverless 开发物联网应用](http://serverless.ink/#serverless-开发物联网应用) * [Serverless 框架安装服务](http://serverless.ink/#serverless-框架安装服务) * [部署 AWS IoT Serverless 服务](http://serverless.ink/#部署-aws-iot-serverless-服务) * [查看日志](http://serverless.ink/#查看日志) * [使用 warmup 插件保活,避免应用冷启动](http://serverless.ink/#使用-warmup-插件保活避免应用冷启动) * [使用 serverless-plugin-warmup 保持唤醒](http://serverless.ink/#使用-serverless-plugin-warmup-保持唤醒) * [部署及测试](http://serverless.ink/#部署及测试-1) * [结论](http://serverless.ink/#结论-2) * [定时执行任务](http://serverless.ink/#定时执行任务) * [Serverless 定时任务](http://serverless.ink/#serverless-定时任务) * [rate 表达式](http://serverless.ink/#rate-表达式) * [cron 表达式](http://serverless.ink/#cron-表达式) * [部署](http://serverless.ink/#部署-1) * [使用 Simulate 插件在本地运行 Lambda](http://serverless.ink/#使用-simulate-插件在本地运行-lambda) * [serverless-plugin-simulate 插件](http://serverless.ink/#serverless-plugin-simulate-插件) * [安装 serverless-plugin-simulate 及环境](http://serverless.ink/#安装-serverless-plugin-simulate-及环境) * [运行及测试](http://serverless.ink/#运行及测试) * [使用 GraphQL 实现更好的 API](http://serverless.ink/#使用-graphql-实现更好的-api) * [GraphQL hello, world](http://serverless.ink/#graphql-hello-world) * [更复杂的示例](http://serverless.ink/#更复杂的示例) * [GraphQL 修改 DymanoDB 的值](http://serverless.ink/#graphql-修改-dymanodb-的值) * [Serverless 应用示例:前端错误日志及事件收集系统](http://serverless.ink/#serverless-应用示例前端错误日志及事件收集系统) * [Molog 使用](http://serverless.ink/#molog-使用) * [Serverless 错误收集系统架构设计](http://serverless.ink/#serverless-错误收集系统架构设计) * [架构设计](http://serverless.ink/#架构设计) * [Molog 系统实现](http://serverless.ink/#molog-系统实现) * [1\. 存储日志和事件](http://serverless.ink/#存储日志和事件) * [2\. 读取日志](http://serverless.ink/#读取日志) * [问题](http://serverless.ink/#问题) * [Serverless 应用示例:二维码生成](http://serverless.ink/#serverless-应用示例二维码生成) * [总览](http://serverless.ink/#总览) * [生成应用](http://serverless.ink/#生成应用) * [配置资源](http://serverless.ink/#配置资源) * [生成二维码](http://serverless.ink/#生成二维码) * [上传 AWS S3](http://serverless.ink/#上传-aws-s3) * [优化二维码](http://serverless.ink/#优化二维码) * [部署及测试](http://serverless.ink/#部署及测试-2) License --- [![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/) © 2017 [Phodal Huang](https://www.phodal.com). The **code** is distributed under the MIT License. See `LICENSE` in this directory. © 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. [待我代码编成,娶你为妻可好](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/)