图书目录

目    录

第Ⅰ部分  基础知识

第1章  两种技术   3

1.1  云端环境   4

1.2  什么是无服务器   6

1.3  对速度的需求   7

1.3.1  早期情况   8

1.3.2  UNIX哲学   8

1.3.3  面向对象和模式   9

1.3.4  Java、J2EE和.NET   10

1.3.5  XML和SOAXML以及SOA   11

1.3.6  Web speed   11

1.3.7  云计算   12

1.3.8  微服务(重新认识)   12

1.3.9  云原生服务   13

1.3.10  发展趋势:速度   14

1.4  什么是AI   16

1.4.1  AI的历史   17

1.4.2  真实的AI世界   18

1.4.3  AI服务   20

1.4.4  人工智能和机器学习   21

1.4.5  深度学习   23

1.4.6  人工智能面临的挑战   24

1.5  计算能力和人工智能的普及   24

1.6  规范的AI即服务架构   25

1.6.1  Web应用程序   26

1.6.2  实时服务   26

1.6.3  批处理服务   26

1.6.4  通信服务   26

1.6.5  基础事务服务   26

1.6.6  AI服务   26

1.6.7  数据服务   27

1.6.8  运营支持   27

1.6.9  开发支持   27

1.6.10  平台之外   27

1.7  在Amazon Web Services

上实现   27

1.8  本章小结   29

第2章  构建无服务器图像识别系统,第1部分   31

2.1  我们的第一个系统   32

2.2  体系结构   32

2.2.1  Web应用程序   34

2.2.2  同步服务   35

2.2.3  异步服务   36

2.2.4  通信服务   37

2.2.5  AI服务   39

2.2.6  数据服务   39

2.2.7  开发支持和运营支持   39

2.3  一切就绪   39

2.3.1  DNS域和SSL/TLS证书   39

2.3.2  设置清单   41

2.3.3  获取代码   41

2.3.4  设置云端资源   42

2.4  实现异步服务   44

2.5  本章小结   52

第3章  构建无服务器图像识别系统,第2部分   55

3.1  部署异步服务   55

3.2  实现同步服务   59

3.2.1  UI服务   60

3.2.2  前端服务   65

3.3  运行系统   68

3.4  清理环境   71

3.5  本章小结   71

第Ⅱ部分  行业工具

第4章  以无服务器方式构建和

保护Web应用程序   75

4.1  待办事项清单程序   75

4.2  体系结构   76

4.2.1  Web应用程序   77

4.2.2  同步服务   78

4.2.3  异步服务   79

4.2.4  通信结构   80

4.2.5  身份认证服务   81

4.2.6  AI服务   81

4.2.7  数据服务   82

4.2.8  开发支持和运营支持   82

4.3  准备就绪   82

4.4  第1步:创建基本应用程序   83

4.4.1  资源   85

4.4.2  待办事项服务   85

4.4.3  前端   89

4.4.4  部署“第1步”应用程序   94

4.5  第2步:启用Cognito保护   97

4.5.1  获取代码   99

4.5.2  用户服务   99

4.5.3  待办事项服务   102

4.5.4  前端服务   103

4.5.5  部署系统的“第2步”   105

4.6  本章小结   109

第5章  为Web应用添加人工智能接口   111

5.1  第3步:添加语音转文字功能   111

5.1.1  获取代码   112

5.1.2  便笺服务   113

5.1.3  前端更新   114

5.1.4  部署“第3步”   117

5.1.5  测试“第3步”   117

5.2  “第4步”:添加文字转语音服务   118

5.2.1  获取代码   119

5.2.2  日程服务   119

5.2.3  前端更新   121

5.2.4  部署“第4步”   122

5.2.5  测试“第4步”   122

5.3  “第5步”:添加聊天机器人对话界面   123

5.3.1  获取代码   124

5.3.2  创建聊天机器人   124

5.3.3  前端更新   127

5.3.4  部署“第5步”   129

5.3.5  测试“第5步”   130

5.4  清理环境   130

5.5  本章小结   131

第6章  如何有效地使用AI即服务   133

6.1  解决无服务器的新挑战   134

6.1.1  无服务器的优势和挑战   134

6.1.2  生产级的无服务器模板   135

6.2  建立项目结构   137

6.2.1  源存储库:monorepo或polyrepo   137

6.2.2  项目文件夹结构   138

6.2.3  获取代码   139

6.3  持续部署   139

6.3.1  持续部署设计   140

6.3.2  使用AWS服务实现持续部署   141

6.4  可观察性和监控   145

6.5  日志   146

6.5.1  生成结构化日志   147

6.5.2  检查日志输出   148

6.5.3  使用CloudWatch Logs Insights搜索日志   151

6.6  监控服务和应用程序指标   153

6.6.1  服务指标   154

6.6.2  应用程序指标   154

6.6.3  使用指标创建告警   159

6.7  使用跟踪理解分布式应用程序   160

6.7.1  启用X-Ray跟踪   160

6.7.2  探索跟踪和映射   162

6.7.3  带有注释和自定义指标的高级跟踪   163

6.8  本章小结   164

第7章  将AI应用于现有系统   165

7.1  无服务器AI的集成模式   165

7.1.1  模式1:同步API   168

7.1.2  模式2:异步API   169

7.1.3  模式3:VPN流输入   170

7.1.4  模式4:VPN完全连接流   171

7.1.5  选择哪种模式   172

7.2  使用Textract改进身份验证   173

7.2.1  获取代码   174

7.2.2  文本分析API   174

7.2.3  客户端代码   176

7.2.4  部署API   177

7.2.5  测试API   177

7.2.6  删除API   179

7.3  带有Kinesis支持的AI数据处理pipeline   179

7.3.1  获取代码   181

7.3.2  部署API   182

7.4  使用Translate即时翻译   183

7.5  测试pipeline   185

7.6  使用Comprehend分析情绪   187

7.7  训练自定义文档分类器   189

7.7.1  创建训练存储桶   190

7.7.2  上传训练数据   191

7.7.3  创建IAM角色   191

7.7.4  训练分类器   192

7.8  使用自定义分类器   192

7.9  pipeline的端到端测试   194

7.10  删除pipeline   195

7.11  使用自动化的优势   195

7.12  本章小结   196

第Ⅲ部分  将所学知识整合起来

第8章  为AI应用大规模收集数据   199

8.1  场景:寻找会议和演讲者   200

8.1.1  识别所需数据   200

8.1.2  数据来源   202

8.1.3  为模型训练准备数据   202

8.2  从网络收集数据   203

8.3  网络爬虫简介   204

8.3.1  典型的网络爬虫过程   204

8.3.2  网络爬虫架构   205

8.3.3  无服务器网络爬虫架构   208

8.4  实现条目存储   210

8.4.1  获取代码   210

8.4.2  条目存储桶   210

8.4.3  部署条目存储   210

8.5  创建frontier来存储和管理URL   211

8.5.1  获取代码   211

8.5.2  frontier URL数据库   211

8.5.3  创建frontier API   213

8.5.4  部署和测试frontier   214

8.6  构建fetcher来检索和解析网页   215

8.6.1  配置和控制headless浏览器   216

8.6.2  捕获页面输出   216

8.6.3  获取多个页面   217

8.6.4  部署并测试fetcher   219

8.7  确定strategy服务中的爬取空间   219

8.8  使用调度程序编排爬虫   222

8.8.1  获取代码   222

8.8.2  使用Step Function   222

8.8.3  部署和测试调度器   224

8.9  本章小结   227

第9章  使用AI从大数据集中提取有价数据   229

9.1  使用AI从网页中提取重要信息   229

9.1.1  了解需求   230

9.1.2  扩展体系结构   230

9.2  了解Comprehend的实体识别API   231

9.3  为信息提取准备数据   234

9.3.1  获取代码   234

9.3.2  创建S3事件通知   234

9.3.3  实现preparation处理程序   236

9.3.4  使用死信队列(DLQ)增加弹性   236

9.3.5  创建DLQ和重试处理程序   237

9.3.6  部署和测试preparation服务   239

9.4  使用文本批处理管理吞吐量   242

9.4.1  获取代码   242

9.4.2  检索批量文本从而进行提取   242

9.5  异步命名实体抽象   243

9.5.1  获取代码   243

9.5.2  开始实体识别任务   244

9.6  查看实体识别进度   245

9.7  部署和测试批量实体识别   246

9.8  对识别结果进行持久化   247

9.9  整合所有功能   248

9.9.1  编排实体提取   248

9.9.2  端到端数据提取测试   251

9.9.3  查看会议数据提取结果   251

9.10  工作总结   253

9.11  本章小结   253

附录A  设置AWS账户   255

附录B  AWS托管AI服务的数据需求   265

附录C  AI应用的数据源   267

附录D  设置DNS域和证书   269

附录E  底层的无服务器框架   275