序一 XIII
序二 XV
前言 XVII
致谢 XIX
关于本书 XXI
关于作者 XXIII
关于封面 XXIV
第 1 部分..踏上征途 1
1 ..无服务器初探 3
1.1 来龙去脉 4
1.1.1 面向服务的架构与微服务 5
1.1.2 软件设计 6
1.2 无服务器架构原则 9
1.2.1 根据需要使用计算服务执行代码 9
1.2.2 编写单一用途的无状态函数 10
1.2.3 设计基于推送的、事件驱动的管道 10
1.2.4 创建更厚、更强大的前端 11
1.2.5 拥抱第三方服务 12
1.3 从服务器过渡到服务 12
1.4 无服务器的利与弊 13
1.4.1 决策驱动因素 13
1.4.2 什么时候使用无服务器 14
1.5 本章小结 15
2 架构与模式 17
2.1 使用场景 17
2.1.1 应用程序后端 18
2.1.2 数据处理与操作 18
2.1.3 实时分析 19
2.1.4 遗留 API 代理 19
2.1.5 计划服务 19
2.1.6 机器人(Bot)和技能(Skill) 20
2.2 架构 20
2.2.1 计算即后端 20
2.2.2 遗留 API 代理 25
2.2.3 混合 26
2.2.4 GraphQL 28
2.2.5 计算即胶水 29
2.2.6 实时处理 31
2.3 模式 32
2.3.1 命令模式 32
2.3.2 消息传输模式 33
2.3.3 优先级队列模式 35
2.3.4 扇出模式 36
2.3.5 管道和过滤器模式 37
2.4 本章小结 38
3 ..建立无服务器应用程序 39
3.1 24 小时视频 40
3.1.1 总体需求 41
3.1.2 Amazon Web Services(AWS) 42
3.1.3 创建第一个 Lambda 函数 44
3.1.4 命名你的 Lambda 46
3.1.5 本地测试 47
3.1.6 部署到 AWS 48
3.1.7 连接 S3 和 Lambda 50
3.1.8 在 AWS 中测试 51
3.1.9 观察日志 53
3.2 配置 Simple Notification Service 54
3.2.1 连接 SNS 和 S3 55
3.2.2 从 SNS 接收电子邮件 58
3.2.3 测试 SNS 58
3.3 设置视频权限 58
3.3.1 创建第二个函数 58
3.3.2 配置与安全 59
3.3.3 测试第二个函数 60
3.4 生成元数据 61
创建第三个函数和 FFprobe 61
3.5 收尾 64
3.6 练习 66
3.7 本章小结 67
4 ..设置你的云服务 69
4.1 安全模型和身份管理 70
4.1.1 创建和管理 IAM 用户 70
4.1.2 创建 IAM 组 73
4.1.3 创建角色 76
4.1.4 资源 77
4.1.5 权限和策略 77
4.2 日志与警报 79
4.2.1 设置日志 80
4.2.2 日志保留期 81
4.2.3 筛选器、指标和警报 81
4.2.4 搜索日志数据 83
4.2.5 S3 和日志 83
4.2.6 关于警报的更多操作 84
4.2.7 CloudTrail 88
4.3 成本 90
4.3.1 创建账单提醒 91
4.3.2 监控和优化成本 92
4.3.3 使用 Simple Monthly Calculator 93
4.3.4 计算 Lambda 和 API Gateway 的成本 94
4.4 练习 96
4.5 本章小结 97
第 2 部分..深入核心 99
5 ..身份认证和授权 101
5.1 无服务器环境中的身份认证 101
5.1.1 无服务器方法 102
5.1.2 Amazon Cognito 104
5.1.3 Auth0 105
5.2 为 24 小时视频增加身份认证 106
5.2.1 计划 106
5.2.2 直接调用 Lambda 107
5.2.3 24 小时视频网站 108
5.2.4 Auth0 配置 110
5.2.5 在网站中加入 Auth0 113
5.2.6 测试 Auth0 的集成 118
5.3 与 AWS 集成 119
5.3.1 用户信息 Lambda 120
5.3.2 API Gateway 124
5.3.3 映射 126
5.3.4 通过 API Gateway 调用 Lambda 130
5.3.5 自定义授权方 130
5.4 委托令牌 135
5.4.1 真实案例 136
5.4.2 开通委托令牌 136
5.5 练习 137
5.6 本章小结 137
6 ..编排者 Lambda 139
6.1 Lambda 内幕 139
6.1.1 事件模型和源 140
6.1.2 推送和拉取事件模型 141
6.1.3 并发执行 142
6.1.4 容器重用 143
6.1.5 冷 Lambda 和暖 Lambda 143
6.2 编程模型 145
6.2.1 函数处理程序 145
6.2.2 事件对象 145
6.2.3 上下文对象 147
6.2.4 回调函数 147
6.2.5 日志 148
6.3 版本管理、别名和环境变量 148
6.3.1 版本管理 148
6.3.2 别名 150
6.3.3 环境变量 152
6.4 使用命令行界面(CLI) 154
6.4.1 调用命令 155
6.4.2 创建和部署函数 155
6.5 Lambda 模式 157
6.5.1 异步瀑布 158
6.5.2 序列与并行 163
6.5.3 使用库 164
6.5.4 把逻辑移到另一个文件中 167
6.6 测试 Lambda 函数 167
6.6.1 在本地测试 167
6.6.2 编写测试 168
6.6.3 在 AWS 中测试 171
6.7 练习 173
6.8 本章小结 173
7 ..API.Gateway 175
7.1 作为接口的 API Gateway 176
7.1.1 和 AWS 服务集成 177
7.1.2 缓存、限制与日志 177
7.1.3 阶段和版本管理 178
7.1.4 脚本 178
7.2 使用 API Gateway 178
7.2.1 计划 180
7.2.2 创建资源和方法 181
7.2.3 配置方法执行 185
7.2.4 Lambda 函数 187
7.2.5 更新网站 191
7.3 优化网关 194
7.3.1 限制 194
7.3.2 日志 197
7.3.3 缓存 199
7.4 阶段和版本管理 202
7.4.1 创建阶段变量 202
7.4.2 使用阶段变量 203
7.4.3 版本管理 205
7.5 练习 205
7.6 本章小结 206
第 3 部分..拓展架构 207
8 ..存储 209
8.1 更智能的存储 209
8.1.1 版本控制 210
8.1.2 托管静态网站 212
8.1.3 存储类别 214
8.1.4 对象生命周期管理 216
8.1.5 转移加速 217
8.1.6 事件通知 219
8.2 安全上传 220
8.2.1 架构 221
8.2.2 上传策略 Lambda 222
8.2.3 S3 CORS 配置 228
8.2.4 在网站中上传 228
8.3 限制对文件的访问 233
8.3.1 禁止公开访问 233
8.3.2 生成预签名 URL 233
8.4 练习 234
8.5 本章小结 235
9 ..数据库 237
9.1 Firebase 简介 238
9.1.1 数据结构 238
9.1.2 安全规则 240
9.2 为 24 小时视频添加 Firebase 241
9.2.1 架构 242
9.2.2 设置 Firebase 243
9.2.3 修改转码视频 Lambda 245
9.2.4 Transcode Video Firebase Update 函数 250
9.2.5 连接 Lambda 251
9.2.6 网站 253
9.2.7 端到端测试 258
9.3 安全访问文件 259
9.3.1 签名 URL Lambda 260
9.3.2 API Gateway 设置 261
9.3.3 再次更新网站 262
9.3.4 提升性能 262
9.3.5 提升 Firebase 安全性 265
9.4 练习 270
9.5 本章小结 270
10 ..最后一英里 271
10.1 部署与框架 271
10.2 迈向更好的微服务 272
10.3 Step Functions 277
10.4 AWS Marketplace 283
10.5 未来之路 285
A ..为无服务器架构而生的服务 287
B ..安装和设置 293
C ..身份认证和授权的更多信息 305
D ..再探 Lambda 内幕 311
E ..模型和映射 317
F ..S3 事件消息结构 335
G ..Serverless.Framework 和 SAM 337
· · · · · · (
收起)