第1章 从简单开始 1
无服Web应用 2
无服设计的好处 4
无服设计的限制 6
使用自己的工作空间 8
本地执行 12
创建着陆页 13
部署到Amazon S3 15
搭建AWS命令行接口 16
创建一个带访问密钥的AWS用户 17
首次部署 20
下一步 21
第2章 基于hash事件的视图路由 23
设计可测试的路由器 24
运行Jasmine测试 25
编写第一个测试用例 26
路由函数 29
创建命名空间 29
添加路由函数 30
创建视图容器 32
添加路由 34
添加视图参数 37
用spy测试调用 37
处理视图函数中的参数 39
加载应用 41
响应事件 42
响应hash事件 44
再次部署 46
下一步 46
第3章 单页应用的必要组件 49
创建视图 50
定义数据模型 53
数据绑定 55
优化数据模型 58
处理用户输入 60
有效地使用视觉反馈 64
控制导航 66
创建一个应用外壳 68
提取着陆页 68
添加工具条 69
使用自定义事件 72
再次部署 75
下一步 75
第4章 基于Amazon Cognito的认证服务 77
接入外部身份认证服务商 78
创建身份池 82
身份池配置 83
IAM角色和策略 84
获取Google身份 87
请求AWS证书 90
刷新令牌 91
基于Deferred对象和Promise的认证请求 93
创建一个身份Deferred对象 95
创建个人主页视图 96
再次部署 98
下一步 99
第5章 使用DynamoDB存储数据 101
使用DynamoDB 102
理解DynamoDB的键和哈希 102
DynamoDB用作文档数据库 103
强一致性和最终一致性 105
创建表 106
属性和键值 108
预设吞吐量 109
二级索引与查询vs扫描 110
授权访问DynamoDB 111
保存文档 113
一个fail-safe的数据访问函数 114
创建和保存一个item 115
读取文档 117
数据访问和验证 119
重新部署 122
下一步 122
第6章 使用Lambda构建微服务 125
理解Amazon Lambda 126
Lambda环境 126
Lambda的局限 128
内存、时间和费用 129
先部署 130
配置一个Lambda函数 131
创建代码包 133
通过AWS控制台测试函数 134
创建一个新的Lambda配置 135
往Lambda执行角色上添加策略 136
编写Lambda函数 138
规避微服务架构问题 138
添加服务依赖 140
构建可测试的服务 141
查询、分组和分页 143
调用Lambda函数 145
使用Amazon API网关 146
重新部署 148
下一步 148
第7章 无服应用的安全 151
保护你的AWS账号 152
禁用所有root访问密钥 152
管理用户配置 152
保护AWS证书 153
设置多重身份认证 154
查询注入攻击 154
跨站脚本攻击 156
XSS注入方法 156
使用web worker沙盒化JavaScript 157
跨站请求伪造 159
不用JavaScript实现XSRF 160
跨站请求和同源策略 161
线路攻击和传输层安全 162
Sidejacking攻击 162
高效使用HTTPS 163
拒绝服务攻击 165
用C1oudFront保护S3 165
可扩展服务和用户身份 166
重新部署 167
下一步 167
第8章 扩容 169
监控Web服务 169
监控容量限制 170
创建付款警告 173
分析S3的流量 174
记录S3请求 174
分析S3日志 177
响应代码频率 179
热门资源 180
每日用量 181
优化应用,实现增长 182
通过缓存降低成本和加载时间 183
通过带版本号的文件名清除缓存 186
云的成本 187
加载成本 188
数据成本 188
微服务成本 189
加起来 190
再次部署 192
下一步 192
附录A安装Node.js 195
安装Node .js运行时 195
Linux 195
OS X 196
Windows 196
管理多个Node.js版本 197
附录B分配一个域名 199
参考书目 201