第一部分 快速入门 2
第1章 在云中运行函数 2
1.1 AWS Lambda简介 5
1.2 以函数作为应用程序的后端 10
1.3 应对一切的单一后端 11
1.4 事件驱动的应用程序 13
1.5 从客户端调用函数 17
总结 20
第2章 属于你的第一个Lambda函数 21
2.1 创建一个新的函数 21
2.2 编写函数 24
2.3 其他设置 26
2.4 测试函数 28
2.5 从LambdaAPI调用函数 30
总结 32
练习 32
第3章 把函数作为Web API 34
3.1 Amazon API Gateway简介 34
3.2 创建API 36
3.3 创建集成 38
3.4 测试集成 40
3.5 改变响应信息 41
3.6 把资源路径作为参数 46
3.7 使用API Gateway的上下文对象 49
总结 52
练习 52
第二部分 构建事件驱动的应用程序 56
第4章 管理安全 56
4.1 用户、组和角色 57
4.2 理解策略 60
4.3 实践策略 63
4.4 使用策略变量 68
4.5 赋予角色 70
总结 72
练习 72
第5章 使用独立的函数 74
5.1 在函数中打包库和模块 74
5.2 让函数订阅事件 76
5.2.1 创建后端资源 77
5.2.2 把函数打包 78
5.2.3 配置权限 82
5.2.4 创建函数 84
5.2.5 测试函数 86
5.3 在函数中使用二进制库 88
5.3.1 准备环境 88
5.3.2 实现函数 89
5.3.3 测试函数 93
5.4 调度函数的执行 94
总结 98
练习 98
第6章 用户身份管理 100
6.1 Amazon Cognito身份管理服务概述 100
6.2 外部身份提供方 103
6.3 集成自定义身份认证 104
6.4 处理认证和非认证用户 105
6.5 使用Amazon Cognito的策略变量 106
总结 110
练习 110
第7章 从客户端调用函数 113
7.1 用JavaScript调用函数 113
7.1.1 创建ID池 114
7.1.2 为Lambda函数开放权限 117
7.1.3 创建Web页面 119
7.2 从移动应用中调用函数 123
7.3 从浏览器调用函数 127
总结 131
练习 131
第8章 设计基于Lambda的认证服务 134
8.1 交互模式 135
8.2 事件驱动架构 137
8.3 使用Amazon Cognito服务 141
8.4 保存用户配置文件 142
8.5 向用户配置文件添加更多数据 143
8.6 加密密码 143
总结 144
练习 144
第9章 实现基于Lambda的认证服务 146
9.1 管理集中式配置 147
9.2 对初始化和部署实现自动化 149
9.3 共享代码 150
9.4 创建应用的首页 151
9.5 注册新用户 152
9.6 验证用户邮件 158
总结 163
练习 163
第10章 为认证服务添加更多功能 168
10.1 处理密码遗忘 168
10.2 处理密码重置 175
10.3 处理用户登录 180
10.4 为认证用户获取AWS令牌 184
10.5 处理密码修改 186
总结 192
练习 192
第11章 构建一个媒体共享应用 195
11.1 事件驱动架构 195
11.1.1 简化实现 196
11.1.2 合并函数 199
11.1.3 改进事件驱动架构 201
11.2 在Amazon S3中定义对象的命名空间 202
11.3 为Amazon DynamoDB设计数据模型 204
11.4 客户端应用 205
11.5 响应内容更新 216
11.6 更新内容索引 220
总结 223
练习 225
第12章 为什么选择事件驱动 226
12.1 事件驱动架构总览 227
12.2 从前端起步 228
12.3 关于后端 229
12.4 响应式编程 232
12.5 通向微服务之路 235
12.6 平台的扩展性 237
12.7 可用性和适应性 238
12.8 预估费用 239
总结 241
练习 242
第三部分 从开发环境到生产部署 244
第13章 改进开发和测试 244
13.1 本地开发 244
13.1.1 用Node.js做本地开发 245
13.1.2 用Python做本地开发 246
13.1.3 社区工具 247
13.2 日志与调试 247
13.3 使用函数版本 249
13.4 使用别名来管理不同环境 250
13.5 开发工具和框架 251
13.5.1 Chalice Python微框架 252
13.5.2 Apex无服务器架构 254
13.5.3 Serverless框架 256
13.6 简单的无服务器测试 258
总结 260
练习 260
第14章 自动化部署 263
14.1 在Amazon S3上存储代码 263
14.2 事件驱动的无服务器持续部署 266
14.3 用AWS CloudFormation部署 268
14.4 多区域部署 274
总结 276
练习 276
第15章 自动化的基础设施管理 279
15.1 对告警做出响应 279
15.2 对事件做出响应 282
15.3 近实时处理日志 282
15.4 设定循环的活动 283
15.5 跨区域的架构和数据同步 284
总结 287
练习 287
第四部分 使用外部服务 290
第16章 调用外部服务 290
16.1 管理密码和安全凭证 290
16.2 使用IFTTT Maker通道 294
16.3 向Slack团队发送消息 296
16.4 自动管理GitHub代码库 298
总结 299
练习 299
第17章 从其他服务获取事件 301
17.1 谁在调用 301
17.2 Webhook模式 302
17.3 处理来自Slack的事件 304
17.4 处理来自GitHub的事件 305
17.5 处理来自Twilio的事件 306
17.6 使用MongoDB作为触发器 306
17.7 日志监控的模式 307
总结 308
练习 308