Serverless架构 无服务器单页应用开发
出版时间:2017年版
内容简介
《Serverless架构:无服务器单页应用开发》讲授如何利用AWSLambda创建Serverless单页应用。这里,Serverless的意思是应用开发者无须管理服务器,将应用构建在服务之上,而不是运行在需要人工配置和维护的服务器之上。这种新的开发方式带来很多好处,比如节省成本,可扩展性与可靠性高,以及开发者可以专注于实现应用的业务逻辑等。全书共8章,BenRady带领读者采用这种新方法从零开始开发一个JavaScript解题应用,并且对其进行测试,最终完成部署。 对于创业者以及中小企业的开发者来说,《Serverless架构:无服务器单页应用开发》讲述的Serverless设计是一个值得了解和学习的新方法,可以从中获得启示,抓住先机。
目录
第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
-- 用CloudFront 保护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