目录
前言 .1
第1 章 无服务器计算时代的全栈开发 9
1.1 当前流行的无服务器理念 10
1.1.1 无服务器应用的特征 . 11
1.1.2 无服务器架构的优点 . 11
1.1.3 无服务器架构的不同实现 14
1.2 AWS 简介 17
1.2.1 关于AWS 17
1.2.2 AWS 上的全栈无服务器特性 17
1.2.3 Amplify CLI 17
1.3 AWS Amplify CLI 简介 20
1.3.1 安装和配置Amplify CLI 21
1.3.2 初始化你的第一个Amplify 项目 22
1.3.3 创建和部署你的第一个服务 25
1.3.4 删除资源 27
1.4 小结 28
第2 章 AWS Amplify 简介 29
2.1 创建和部署无服务器函数 30
2.1.1 创建React 应用程序并安装依赖项 31
2.1.2 使用Amplify CLI 创建新的无服务器函数 . 32
2.1.3 代码解析 33
2.1.4 创建路由/coins 33
2.2 添加API 34
2.2.1 创建新的API. 35
2.2.2 部署API 和Lambda 函数 35
2.3 与新API 进行交互 . 36
2.3.1 配置客户端应用程序与Amplify 协同工作. 36
2.3.2 Amplify 客户端API 类 . 36
2.3.3 在React 中调用API 并渲染数据 37
2.4 更新函数以调用另一个API 39
2.4.1 安装Axios 39
2.4.2 更新函数 40
2.4.3 更新客户端应用 41
2.5 小结 42
第 3 章 创建你的第一款应用 43
3.1 GraphQL 简介 43
3.1.1 GraphQL 是什么? . 43
3.1.2 GraphQL API 的构成 . 44
3.1.3 GraphQL 操作 45
3.2 创建GraphQL API 47
3.3 查看GraphQL API 并与之交互 49
3.4 构建React 应用程序 51
3.4.1 列出笔记(GraphQL 查询) . 51
3.4.2 创建笔记(GraphQL 变更) . 56
3.4.3 删除笔记(GraphQL 变更) . 59
3.4.4 更新笔记(GraphQL 变更) . 61
3.4.5 实时数据(GraphQL 订阅) . 63
3.5 小结 64
第4 章 身份验证简介 .66
4.1 Amazon Cognito 简介 67
4.1.1 Amazon Cognito 的工作原理 . 67
4.1.2 Amazon Cognito 与AWS Amplify 的集成 68
4.2 创建React 应用程序并添加Amplify . 69
客户端身份验证概述 . 70
4.3 构建应用程序 71
4.3.1 创建文件和文件夹结构 71
4.3.2 创建第一个组件 72
4.3.3 Public 组件 . 73
4.3.4 Nav 组件 73
4.3.5 Protected 组件 74
4.3.6 Router 组件 . 76
4.3.7 Profile 组件 . 77
4.3.8 UI 美化组件 79
4.3.9 配置应用程序 79
4.3.10 测试应用程序 . 79
4.4 小结 80
第5 章 自定义身份验证策略 81
5.1 创建protectedRoute 钩子 82
5.2 创建表单 83
5.2.1 登录组件(SignIn) 87
5.2.2 注册组件(SignUp) . 88
5.2.3 注册确认组件(ConfirmSignUp) . 89
5.2.4 ForgotPassword 组件 . 89
5.2.5 ForgotPasswordSubmit 组件 90
5.2.6 完善Form.js 91
5.2.7 updateForm 辅助函数 93
5.2.8 renderForm 函数 94
5.2.9 表单类型切换 95
5.2.10 更新Profile 组件 96
5.2.11 测试应用程序 . 98
5.3 小结 98
第6 章 无服务器函数进阶(一) 99
6.1 事件源和数据结构 100
6.1.1 API Gateway 事件 . 100
6.1.2 Amazon S3 事件 102
6.1.3 Amazon Cognito 事件 . 103
6.2 IAM 权限和触发器配置. 103
6.3 创建基础项目 . 104
6.4 添加后确认的Lambda 触发器 104
6.5 使用AWS Lambda 和Amazon S3 动态调整图片大小 108
6.5.1 添加自定义逻辑以调整图片大小 . 109
6.5.2 在React 应用程序中上传图片 110
6.6 小结 . 112
第7 章 无服务器函数进阶(二) 113
7.1 主要构建目标 . 114
7.2 准备工作 115
7.3 添加身份验证和组权限 . 115
7.4 添加数据库 117
7.5 添加API 118
7.6 创建前端 123
7.6.1 容器组件(Container) . 125
7.6.2 checkUser 函数 125
7.6.3 Nav 组件 126
7.6.4 Profile 组件 128
7.6.5 Router 组件 128
7.6.6 Admin 组件 129
7.6.7 Main 组件 . 131
7.7 测试应用程序 . 133
7.8 小结 . 133
第8 章 AWS AppSync 应用 135
8.1 GraphQL, AppSync API 和React Router 的构建技能 . 135
8.1.1 GraphQL 类型之间的关系 136
8.1.2 多种身份验证类型 138
8.1.3 身份验证 139
8.1.4 使用GSI 实现自定义数据访问模式 139
8.2 构建应用程序 . 140
8.3 创建Amplify 应用程序并添加功能 . 140
8.4 构建后端 140
8.4.1 身份验证 141
8.4.2 AppSync API 142
8.5 部署服务 144
8.6 构建前端 145
8.6.1 Container 145
8.6.2 Footer . 146
8.6.3 Nav 147
8.6.4 Admin . 147
8.6.5 Router . 148
8.6.6 Performance . 150
8.6.7 Home 152
8.7 小结 . 155
第9 章 使用Amplify DataStore 构建离线应用程序 . 156
9.1 关于Amplify DataStore . 157
9.1.1 Amplify DataStore 简介 . 157
9.1.2 Amplify DataStore 操作 . 158
9.1.3 DataStore 谓词 158
9.2 使用Amplify DataStore 构建离线和实时应用程序 . 159
9.2.1 创建基础项目 . 160
9.2.2 创建API 161
9.2.3 编写客户端代码 162
9.2.4 测试离线功能 . 165
9.2.5 测试实时功能 . 166
9.3 小结 . 166
第10 章 图像与存储 167
10.1 使用Amazone S3 167
10.1.1 创建基础项目 169
10.1.2 添加身份验证 170
10.1.3 创建API . 170
10.1.4 编写客户端代码 . 171
10.2 小结 178
第11 章 托管:将你的应用程序部署到支持
CI 和CD 的Amplify Console . 179
11.1 基于CLI 的部署 . 180
11.2 基于Git 的部署 183
11.2.1 创建GitHub 存储库 184
11.2.2 基于Git 的CI/CD 187
11.3 访问控制 . 187
11.4 自定义域 . 188
11.5 小结 189