全栈Serverless
Nader Dabit
邓世超 译
出版时间:2022年03月
页数:190
云计算通常与后端开发和DevOps有关。但随着Serverless技术的兴起以及新一代服务和框架的出现,前端和移动开发人员也可以构建强大的应用程序,并且其中支持生产就绪的功能包括身份验证和授权,API网关,聊天机器人,增强现实场景等。本书向你展示了如何实现上述功能的步骤。
Amazon Web Services的倡导者Nader Dabit将指导你完成使用React、AWS、GraphQL和AWS Amplify构建全栈应用程序的过程。你将学习如何在客户端创建服务并将其集成到客户端应用程序中,同时还会学习常规的最佳实践、部署策略、富媒体管理,以及整个过程中的持续集成和交付。
● 了解如何构建解决实际问题的无服务器应用程序。
● 了解这些技术的应用场景(以及局限)。
● 创建与DynamoDB和NoSQL数据库进行交互的GraphQL API。
● 学习身份验证的工作原理,并了解身份验证和授权之间的区别。
● 深入了解无服务器函数的工作原理及其重要性。
● 在AWS上构建全栈应用程序,并使用Amplify DataStore构建脱机应用程序。
  1. 前言
  2. 第1章 无服务器计算时代的全栈开发
  3. 1.1 当前流行的无服务器理念
  4. 1.1.1 无服务器应用的特征
  5. 1.1.2 无服务器架构的优点
  6. 1.1.3 无服务器架构的不同实现
  7. 1.2 AWS简介
  8. 1.2.1 关于AWS
  9. 1.2.2 AWS上的全栈无服务器特性
  10. 1.2.3 Amplify CLI
  11. 1.3 AWS Amplify CLI简介
  12. 1.3.1 安装和配置Amplify CLI
  13. 1.3.2 初始化你的第一个Amplify项目
  14. 1.3.3 创建和部署你的第一个服务
  15. 1.3.4 删除资源
  16. 1.4 小结
  17. 第2章 AWS Amplify简介
  18. 2.1 创建和部署无服务器函数
  19. 2.1.1 创建React应用程序并安装依赖项
  20. 2.1.2 使用Amplify CLI创建新的无服务器函数
  21. 2.1.3 代码解析
  22. 2.1.4 创建路由/coins
  23. 2.2 添加 PI
  24. 2.2.1 创建新的API
  25. 2.2.2 部署API和Lambda函数
  26. 2.3 与新API进行交互
  27. 2.3.1 配置客户端应用程序与Amplify协同工作
  28. 2.3.2 Amplify客户端API类
  29. 2.3.3 在React中调用API并渲染数据
  30. 2.4 更新函数以调用另一个API
  31. 2.4.1 安装Axios
  32. 2.4.2 更新函数
  33. 2.4.3 更新客户端应用
  34. 2.5 小结
  35. 第3章 创建你的第一款应用
  36. 3.1 GraphQL简介
  37. 3.1.1 GraphQL是什么?
  38. 3.1.2 GraphQL API的构成
  39. 3.1.3 GraphQL操作
  40. 3.2 创建GraphQL API
  41. 3.3 查看GraphQLAPI并与之交互
  42. 3.4 构建 React 应用程序
  43. 3.4.1 列出笔记 (GraphQL查询)
  44. 3.4.2 创建笔记 (GraphQL变更)
  45. 3.4.3 删除笔记 (GraphQL变更)
  46. 3.4.4 更新笔记 (GraphQL变更)
  47. 3.4.5 实时数据 (GraphQL订阅)
  48. 3.5 小结
  49. 第4章 身份验证简介
  50. 4.1 Amazon Cognito简介
  51. 4.1.1 Amazon Cognito的工作原理
  52. 4.1.2 Amazon Cognito与AWS Amplify的集成
  53. 4.2 创建React应用程序并添加Amplify客户端身份验证概述
  54. 4.3 构建应用程序
  55. 4.3.1 创建文件和文件夹结构
  56. 4.3.2 创建第一个组件
  57. 4.3.3 Public组件
  58. 4.3.4 Nav组件
  59. 4.3.5 Protected组件
  60. 4.3.6 Router组件
  61. 4.3.7 Profile组件
  62. 4.3.8 UI美化组件
  63. 4.3.9 配置应用程序
  64. 4.3.10 测试应用程序
  65. 4.4 小结
  66. 第5章 自定义身份验证策略
  67. 5.1 创建protectedRoute钩子
  68. 5.2 创建表单
  69. 5.2.1 登录组件(SignIn)
  70. 5.2.2 注册组件 (SignUp)
  71. 5.2.3 注册确认组件(ConfirmSignUp)
  72. 5.2.4 ForgotPassword组件
  73. 5.2.5 ForgotPasswordSubmit组件
  74. 5.2.6 完善Form.js
  75. 5.2.7 updateForm辅助函数
  76. 5.2.8 renderForm函数
  77. 5.2.9 表单类型切换
  78. 5.2.10 更新Profile组件
  79. 5.2.11 测试应用程序
  80. 5.3 小结
  81. 第6章 无服务器函数进阶(一)
  82. 6.1 事件源和数据结构
  83. 6.1.1 API Gateway事件
  84. 6.1.2 Amazon S3事件
  85. 6.1.3 Amazon Cognito事件
  86. 6.2 IAM权限和触发器配置
  87. 6.3 创建基础项目
  88. 6.4 添加后确认的Lambda触发器
  89. 6.5 使用AWS Lambda和Amazon S3动态调整图片大小
  90. 6.5.1 添加自定义逻辑以调整图片大小
  91. 6.5.2 在React应用程序中上传图片
  92. 6.6 小结
  93. 第7章 无服务器函数进阶(二)
  94. 7.1 主要构建目标
  95. 7.2 准备工作
  96. 7.3 添加身份验证和组权限
  97. 7.4 添加数据库
  98. 7.5 添加API
  99. 7.6 创建前端
  100. 7.6.1 容器组件(Container)
  101. 7.6.2 checkUser函数
  102. 7.6.3 Nav组件
  103. 7.6.4 Profile组件
  104. 7.6.5 Router组件
  105. 7.6.6 Admin组件
  106. 7.6.7 Main组件
  107. 7.7 测试应用程序
  108. 7.8 小结
  109. 第8章 AWS AppSync应用
  110. 8.1 GraphQL, AppSync API和React Router的构建技能
  111. 8.1.1 GraphQL类型之间的关系
  112. 8.1.2 多种身份验证类型
  113. 8.1.3 身份验证
  114. 8.1.4 使用GSI实现自定义数据访问模式
  115. 8.2 构建应用程序
  116. 8.3 创建Amplify应用程序并添加功能
  117. 8.4 构建后端
  118. 8.4.1 身份验证
  119. 8.4.2 AppSync API
  120. 8.5 部署服务
  121. 8.6 构建前端
  122. 8.6.1 Container
  123. 8.6.2 Footer
  124. 8.6.3 Nav
  125. 8.6.4 Admin
  126. 8.6.5 Router
  127. 8.6.6 Performance
  128. 8.6.7 Home
  129. 8.7 小结
  130. 第9章 使用Amplify DataStore构建离线应用程序
  131. 9.1 关于Amplify DataStore
  132. 9.1.1 Amplify DataStore简介
  133. 9.1.2 Amplify DataStore操作
  134. 9.1.3 DataStore谓词
  135. 9.2 使用Amplify DataStore构建离线和实时应用程序
  136. 9.2.1 创建基础项目
  137. 9.2.2 创建API
  138. 9.2.3 编写客户端代码
  139. 9.2.4 测试离线功能
  140. 9.2.5 测试实时功能
  141. 9.3 小结
  142. 第10章 图像与存储
  143. 10.1使用Amazone S3
  144. 10.1.1 创建基础项目
  145. 10.1.2 添加身份验证
  146. 10.1.3 创建API
  147. 10.1.4 编写客户端代码
  148. 10.2 小结
  149. 第11章 托管: 将你的应用程序部署到支持CI和CD的Amplify Console
  150. 11.1 基于CLI的部署
  151. 11.2 基于Git的部署
  152. 11.2.1 创建GitHub存储库
  153. 11.2.2 基于Git的CI/CD
  154. 11.3 访问控制
  155. 11.4 自定义域
  156. 11.5 小结
书名:全栈Serverless
作者:Nader Dabit
译者:邓世超 译
国内出版社:中国电力出版社
出版时间:2022年03月
页数:190
书号:978-7-5198-6445-3
原版书书名:Full Stack Serverless
原版书出版商:O'Reilly Media
Nader Dabit
 
Nader Dabit是Amazon Web Services的一名高级开发者及其拥护者,擅长跨平台和云服务的应用程序开发。他与客户端团队一起通力合作,改善了客户端SDK的开发体验。此前,Nader通过其公司React Native Training为很多大公司提供了使用React和React Native框架构建应用程序的培训服务,其中包括Amazon,、Microsoft、Salesforce和American Express等。
 
 
本书封面上的动物是拟刺尾鲷 (学名:Paracanthurus hepatus)。这种鱼遍布印度洋和太平洋大部分地区。拟刺尾鲷还拥有很多其他俗名,比如蓝尾灰吊,七彩刺尾鱼, 旗尾刺尾鱼,河马刺尾鱼。
成年的拟刺尾鲷拥有椭圆形的身体和鲜艳的蓝色,深蓝色条纹从眼睛到尾部沿着背侧区域分布。它们也有亮黄色的胸鳍和尾鳍。
幼年拟刺尾鲷为黄色,眼睛周围有蓝色斑点。成年的拟刺尾鲷体长平均约为 8 到 12 英尺,体重刚好超过一磅。它们在野生环境中的寿命大约是 8 到 12 年。
拟刺尾鲷一般生活在珊瑚礁,多藻类,多岩石的地区,这也是它们食物的主要来源。它们通过以下方式为珊瑚礁生态系统提供了宝贵的服务:去除多余的藻类并防止珊 瑚窒息。它们牙齿锋利,嘴巴小巧,可以在不平坦的表面进食。
拟刺尾鲷通常生活在由多种鱼类共同组成的群居环境中,这提供了某种保护并可以确保食物的来源。它们遇到敌人时以不要命而闻名。此外,拟刺尾鲷的头部有尖刺,身体的底部和尾鳍上的保护壳可以伸展出有毒脊柱,这会给金枪鱼和石斑鱼等捕食 者造成饱含剧痛的伤口。雄性拟刺尾鲷使用这些刺在“剑斗”中确立统治地位。