新書推薦:
《
冯友兰和青年谈心系列
》
售價:NT$
762.0
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:NT$
352.0
《
认知行为疗法:心理咨询的顶层设计
》
售價:NT$
454.0
《
FANUC工业机器人装调与维修
》
售價:NT$
454.0
《
吕著中国通史
》
售價:NT$
286.0
《
爱琴海的光芒 : 千年古希腊文明
》
售價:NT$
908.0
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:NT$
301.0
《
SDGSAT-1卫星热红外影像图集
》
售價:NT$
2030.0
|
編輯推薦: |
云托管无服务器Web应用的优势是不可否认的:与传统的服务器相关设计相比,复杂性更低,上市时间更短,可扩展性更强。
缘于AWS Lambda中的JavaScript支持和强大的无服务器API工具如Claudia.js库,可以在不学习新语言的情况下端到端地构建和部署无服务器应用。
将教你使用JavaScript、Node和Claudia.js在AWS上设计和构建无服务器Web应用。
你将掌握编写AWS Lambda函数的基础知识,以及API Gateway等核心的无服务器模式。
你可通过使用Amazon Alexa构建聊天机器人和语音助手来练习新技能。
你还将学习一些将现有应用迁移到无服务器平台的技术。
|
內容簡介: |
● 身份验证和数据库存储
● 异步函数
● 现实世界中的有趣示例
● 开发无服务器微服务
|
關於作者: |
Slobodan Stojanovi?和Aleksandar Simovi?是AWS Serverless Heroes和Claudia.js项目的核心贡献者,是Claudia Bot Builder的主要开发人员和维护人员,以及Node.js的无服务器应用的共同作者。
Aleksandar已经担任高级软件顾问和工程师超过七年,主攻但不限于JavaScript。他还涉足Swift、Python和Rust。他在贝尔格莱德工作,是JS贝尔格莱德会议的共同组织者。
Slobodan是Cloud Horizon的首席技术官,Cloud Horizon是一家位于蒙特利尔的软件开发工作室。他在贝尔格莱德工作,是JS贝尔格莱德会议的共同组织者。
|
目錄:
|
第Ⅰ部分 无服务器比萨店
第1章 使用Claudia的无服务器架构介绍 3
1.1 服务器和洗衣机 4
1.2 核心概念 4
1.3 无服务器的工作方式 6
1.4 无服务器实践 6
1.4.1 Maria姨妈的无服务器比萨店应用 7
1.4.2 一种常见的方法 7
1.4.3 无服务器方法 9
1.5 无服务器基础设施AWS 10
1.6 什么是Claudia,应如何配置 14
1.7 何时以及在何处使用无服务器 16
1.8 本章小结 17
第2章 构建你的第一个无服务器API 18
2.1 制作比萨原料: 构建API 18
2.1.1 能买到哪种比萨 20
2.1.2 构建你的API 24
2.1.3 创建比萨订单 28
2.2 Claudia如何部署 你的API 32
2.3 流量控制:API Gateway 的工作原理 34
2.4 当无服务器API不是解决 方案时 35
2.5 试一试 35
2.5.1 练习 35
2.5.2 解决方案 36
2.6 本章小结 40
第3章 实现异步工作很容易,我们有.promise方法 41
3.1 存储订单 41
3.2 承诺在30分钟内交付 46
3.3 试用你的API 49
3.4 从数据库获取订单 54
3.5 试一试 56
3.5.1 练习 56
3.5.2 解决方案 57
3.6 本章小结 60
第4章 比萨递送:外部连接 61
4.1 连接外部服务 61
4.2 连接到递送API 62
4.2.1 Some Like It Hot
Delivery API 63
4.2.2 创建第一个交付请求 64
4.3 异步通信的潜在问题 70
4.3.1 忘记返回Promise 71
4.3.2 不传递Promise的值 72
4.3.3 不将外部服务包装在Promise中 72
4.3.4 长异步操作的超时问题 73
4.4 试一试 75
4.4.1 练习 75
4.4.2 解决方案 75
4.5 本章小结 77
第5章 程序出错 79
5.1 调试无服务器应用 79
5.2 调试Lambda函数 81
5.3 剖析应用 84
5.4 试一试 87
5.4.1 练习 88
5.4.2 解决方案 88
5.5 本章小结 88
第6章 升级你的API 89
6.1 无服务器认证和授权 89
6.2 创建用户池和标识池 93
6.3 试一试 99
6.3.1 练习 99
6.3.2 解决方案 100
6.4 本章小结 102
第7章 处理文件 103
7.1 在无服务器应用中存储静态文件 103
7.2 生成缩略图 107
7.3 试一试 114
7.3.1 练习 115
7.3.2 解决方案 115
7.4 本书第Ⅰ部分结束:特殊练习 117
7.5 本章小结 117
第Ⅱ部分 来聊天吧
第8章 订购比萨只需要一条信息:聊天机器人 121
8.1 浏览器之外的比萨订购 121
8.2 来自Facebook Messenger的问候 122
8.3 你们有什么比萨 125
8.4 加快部署速度 128
8.5 Messenger模板 129
8.6 Claudia Bot Builder的工作方式 132
8.7 试一试 133
8.7.1 练习 134
8.7.2 解决方案 134
8.8 本章小结 134
第9章 异步和延迟响应 135
9.1 使聊天机器人具有交互性 135
9.2 增强聊天机器人结构的可扩展性 141
9.3 将聊天机器人连接到DynamoDB数据库 146
9.4 从聊天机器人获取用户位置 149
9.5 安排交付 153
9.6 集成简单的NLP 158
9.7 试一试 159
9.7.1 练习 159
9.7.2 解决方案 159
9.7.3 高级练习 161
9.8 本章小结 162
第10章 Jarvis,我的意思是Alexa,请帮我点一份比萨 163
10.1 现在不能说话:用Twilio发送SMS短信 164
10.1.1 SMS比萨列表 165
10.1.2 订购比萨 167
10.2 使用Alexa 172
10.2.1 准备skill 176
10.2.2 使用Alexa点比萨 180
10.3 试一试 183
10.3.1 练习 183
10.3.2 解决方案 184
10.4 第Ⅱ部分结束:特殊练习 184
10.5 本章小结 185
第Ⅲ部分 下一步
第11章 测试 189
11.1 测试服务器托管应用和无服务器应用 189
11.2 如何测试无服务器应用 191
11.3 前期准备 192
11.4 单元测试 195
11.5 模拟无服务器函数 199
11.6 集成测试 205
11.7 其他类型的自动化测试 209
11.8 更进一步:编写可测试的无服务器函数 210
11.9 试一试 214
11.9.1 练习 214
11.9.2 解决方案 215
11.10 本章小结 216
第12章 为比萨付款 217
12.1 付款交易 217
12.2 实现支付服务 222
12.3 有人能攻击支付服务吗 228
12.3.1 标准 229
12.3.2 权限 230
12.4 试一试 230
12.4.1 练习 230
12.4.2 解决方案 230
12.5 本章小结 232
第13章 将现有的Express.js应用程序迁移到AWS Lambda 233
13.1 Roberto叔叔的出租车应用 234
13.2 在AWS Lambda中运行Express.js应用 234
13.2.1 代理集成 237
13.2.2 serverless-express模块的工作方式 238
13.3 提供静态内容 239
13.4 连接到MongoDB 241
13.5 无服务器Express.js应用的限制 245
13.6 试一试 246
13.6.1 练习 247
13.6.2 解决方案 247
13.7 本章小结 248
第14章 迁移到无服务器 249
14.1 分析当前的无服务器应用 249
14.2 将现有应用迁移到无服务器 251
14.3 拥抱平台 253
14.3.1 提供静态文件 254
14.3.2 存储状态 254
14.3.3 日志 255
14.3.4 持续集成 256
14.3.5 管理环境:生产和开发 257
14.3.6 分享机密 258
14.3.7VPC虚拟私有云 260
14.4 优化应用 261
14.4.1 捆绑或单用途功能 261
14.4.2 为Lambda函数选择合适的内存大小 261
14.5 面对挑战 262
14.5.1 处理超时 262
14.5.2 冷启动 263
14.5.3 DDoS攻击 264
14.5.4 厂商绑定 265
14.6 试一试 266
14.7 本章小结 266
第15章 实际案例研究 267
15.1 CodePen 267
15.1.1 无服务器之前 268
15.1.2 无服务器迁移 269
15.1.3 基础设施成本 271
15.1.4 测试与挑战 272
15.2 MindMup 272
15.2.1 无服务器之前 273
15.2.2 无服务器迁移 275
15.2.3 基础设施成本 277
15.2.4 测试、日志和挑战 277
15.3 本章小结 279
附录A 安装和配置 281
附录B 配置Facebook Messenger、Twilio和Alexa 287
附录C 设置Stripe和MongoDB 309
|
內容試閱:
|
前言
我们成为开发人员已经超过10年了。从20世纪90年代的第一台计算机开始,我们就自己开发了第一个用Pascal和BASIC编写的函数,甚至还参加了编程竞赛。但是当网络出现时,一切都改变了。我们立即着手构建第一个使用静态HTML和CSS的Web应用及网页。当JavaScript和jQuery成为新标准时我们几乎立即转向它们即使有人还在使用Flash和ActionScript。随着Node.js的出现,我们正在使用的语言如Python和C#被它替换是理所应当的。即使我们有时仍然使用这些语言编写一些函数,但我们转向Node.js是必然的。
大约三年前,我们将注意力转向无服务器架构。Gojko Adzic通过他最初使用Claudia.js作为部署工具完成的工作向我们介绍了AWS Lambda。我们惊讶于开发和部署无服务器架构应用的速度和容易程度,以及扩展它们是那么简单,我们开始与他一起创建Claudia Bot Builder。
日复一日,我们对构建和维护Web应用的观点完全被无服务器架构改变。后端服务被无服务器函数取代,而不需要编写bash脚本、登录服务器以及规划容量,我们不再关注这些问题,而是更多地关注业务逻辑和应用价值。
我们将第一个无服务器架构Web应用发布到生产环境中,并开发了数百个聊天机器人。我们的产量增加了近五倍。这太不可思议了。花几个月时间学习如何使用bash、ssh、rsync等配置和维护应用服务器已经不再重要了。一切都变了。从我们的出发点看,无服务器架构生态走了很长的一段路无服务器架构提供商现在更容易使用,而且每年有越来越多的无服务器架构应用组件可用Amazon re:Invent。
无服务器架构在近几年内日新月异我们已经把它作为自己的事业。我们开始讨论无服务器架构,举办研讨会和提供无服务器架构业务咨询。我们尝试总结经验和知识,结合多个其他来源,并以易于学习和理解的方式将它们组合在一起。
|
|