基本信息
- 原书名:AWS Lambda in Action: Event-driven Serverless Applications
- 作者: (意)达尼洛·波恰(Danilo Poccia)
- 译者: 喻勇 刘智毅 王毅
- 丛书名: 云计算与虚拟化技术丛书
- 出版社:机械工业出版社
- ISBN:9787111579946
- 上架时间:2018-1-23
- 出版日期:2017 年9月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 综合

内容简介
作译者
目录
中文版序
推荐序
译者序
前言
关于原书封面插图
第一部分 快速入门
第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 从Lambda API调用函数30
译者序
Cloud Native是一个热门词汇,云计算时代的开发者需要思考如何更直接、更高效地利用云平台的整体能力,同时应对日益复杂的业务逻辑和技术架构。基于函数的无服务器计算无疑为这些问题提供了一个可行的解决之道:程序员聚焦在业务逻辑,把服务交互、事件驱动、底层资源管理这些基础设施层面的工作统统交给云平台来处理。
AWS Lambda发布仅仅三年,据笔者了解,Lambda在美国初创公司甚至成熟企业中已经有了非常广泛的应用。围绕着Lambda和函数式无服务器计算技术也涌现了一批高速成长的创业企业。这一切都证明,一个“无服务器生态”正在快速形成。据了解,AWS Lambda服务也会在不久的将来在中国区市场发布。这一切都是值得技术爱好者和职业开发者关注的热点。
Danilo Poccia是AWS的专业布道师,他撰写的本书是AWS Lambda和事件驱动无服务器应用程序开发领域极好的入门教材。作者对于AWS平台、Web应用开发和底层安全机制有非常深入地研究和实践,全书由若干应用开发实例贯穿前后,深入浅出,包含了大量的代码和最佳实践指导。
本书中文版由喻勇完成第1~6章和第8、15章的翻译,刘智毅完成第7章和第9~14章的翻译,第16、17章的翻译工作由王毅完成。喻勇同时承担了全书后期统稿和整体校对工作。本书虽然篇幅不长,但是包含了大量细节和代码,同时技术领域的跨度也较大,这些都对翻译工作带来了不小的挑战。三位译者虽然竭尽全力但是也难免有疏漏之处。幸运的是,在翻译过程中,我们得到了身边好友的帮助,他们花费大量业余时间,担任校对工作,仔细阅读了译稿,并指出大量术语和技术错误,我们在此表示特别感谢!
本书的校对分工和团队成员是:丁立(第1章),薛江波(第2章),曹辉(第3章),季奔牛(第4章),罗文江(第5章),阿正(Dean)(第6章),任小火(第7章),刘果(第8章),张海宁(第9章),明立波(第10章),归泳昆(第11章)。除了对应章节的校对工作,他们还认真阅读了全书,并提出了宝贵的建议。
在全书付梓之前,为了保证质量,丁立、曹辉、季奔牛以及思岚科技的CTO黄珏珅等好友号召他们所在公司技术团队大范围试读,在印刷之前又发现和修改了许多错误,在此向这几位好友所服务的两家公司—华兴资本逐鹿X团队(丁立担任CTO)和上海思岚科技(黄珏珅、曹辉和牛哥)表示感谢。这两家公司在移动大数据应用和机器人自主定位导航领域都处于国内领先地位,也已经开始使用无服务器技术进行开发。
我们也在此特别感谢机械工业出版社华章公司的温莉芳老师和和静老师,感谢出版社在国内尚无AWS Lambda服务的阶段就决定引进本书的“冒险尝试”,也感谢出版社对译者工作的支持和帮助!
译者介绍
喻勇
在技术圈驰骋多年,曾担任过微软技术布道师,VMware Cloud Foundry生态建设负责人,并有幸引领了国内容器技术的创业浪潮。目前赋闲在家,翻译图书,学习新知。
刘智毅
毕业于复旦大学,获中文系和翻译系双学位,现供职于西山居工作室,从事特效设计和游戏开发。业余兼任技术翻译,致力于图形学、技术美术和行业资讯译介。
王毅
在洛杉矶担任You World CTO,负责搭建“出境享乐一族”的游乐体验的平台。历任AWS大中华区解决方案架构师主管、阿里云资深技术专家、IBM高级咨询经理。
前言
—Werner Vogel,亚马逊CTO
1996年我开始接触客户端-服务器架构,体验过分布式系统的先进和复杂。21世纪初,我与电信和媒体的客户合作过几个大型项目,那时我切身体会到计算、存储和网络的限制会成为阻碍公司创新的瓶颈。
接着在关键性的2006年,以“按需”(utility)模式使用计算资源—就像使用能源、汽油和水那样—开始成为现实。那年AWS发布了它的首个存储服务(Amazon S3)和计算服务(Amazon EC2)。我对它们都产生了强烈的兴趣和好奇。
自2012年起,我专注于帮助客户在云端实现应用,或者把应用迁移到云端。为了更熟悉手头的新服务、新平台,我决定用Amazon S3作为后端存储,写一个共享式文件系统。我用Python编写实现方案,放到GitHub上开源,很快就遇上了一批志同道合的用户和贡献者。
2014年AWS Lambda横空出世时,我意识到自己已经站在变革大潮的前端。数月后一个阴雨绵绵的周末,我想我可以不借助任何实体服务器,编写一个完整的应用。仅需要浏览器上的HTML、CSS和JavaScript文件这类静态内容,配合Lambda函数在后端执行我的逻辑,再加上用事件来支配商业流程,应用就完成了。我写了一个“简单的”认证服务(详见本书第8~10章),再次放到GitHub上共享。反响之热烈出乎我的意料,显然,我抓住了开发者的痛点。
经验分享之谈最后就成了本书。我希望本书能帮助你接受无服务器计算的新趋势,开发出无与伦比的新应用,检验新技术、新数据。我随时洗耳恭听你的故事,帮助同道中人实现理想将是我无上的荣光。
关于本书
本书分为四部分。第一部分(第1~3章)介绍了基础技术,比如AWS Lambda和Web API。第二部分(第4~12章)是本书的核心,讲解了事件驱动应用的构建方法,让你可以用事件串联多个函数,构建新的应用。第三部分(第13~15章)主要关注从开发到生产,帮助你优化DevOps流程。第四部分(第16章和第17章)介绍了如何把Lambda函数与AWS平台以外的服务整合起来,用AWS Lambda改进沟通方式,自动完成代码管理。
本书自始至终的逻辑是递进的,建议按照顺序阅读。
如果你已经涉猎过AWS Lambda的基础内容,可以跳过第一部分,直接从第二部分开始,学习构建更为复杂的事件驱动应用。
第三部分和第四部分可以作为参考内容,帮助你实现新的想法,或者对照我所建议的做法,巩固对知识的掌握。
云计算的发展日新月异,因此我只能关注一些基本的概念,如分布式系统和事件驱动设计。在我看来,在这个分布式的世界里,这些内容对所有IT系统开发者都是至关重要的。
本书的目标读者是那些没有云技术经验,同时希望了解无服务器计算和事件驱动应用前沿技术的开发人员。如果你已经对Amazon EC2和Amazon VPC这类AWS服务有所了解,本书将为你开辟一个新的认知视角,帮助你用服务而非服务器的角度构建应用程序。
代码规范
本书的每个专题都附带了丰富的样例。大段代码或夹在文本中的代码都会用等宽字体显示,以区别于正文。类、方法名、对象属性,以及其他代码相关的术语和内容,也都会使用等宽字体。
获取源代码
本书中的一些源代码可以从以下网站获得:http://www.manning.com/aws-lambda-in-action和https://github.com/danilop/AWS_Lambda_in_Action。
致谢
我要感谢许多人。这些年来,他们与我并肩工作、交换想法、分享有趣的点子,让我从中获益匪浅。我不喜欢列名单,所以这里没有他们的名单。我相信那些帮助过我的人能从中读出我的谢意。这里需要特别感谢几位仁兄:Toni Arritola,他总能厘清我偶尔混乱的思路,用简明易懂的语言说出我的想法,让本书内容条理清晰;Brent Stains,他给了我许多极有价值的提示和技术视角;Mike Stephens,是他最先提出了让我写这本书的想法。
序言
AWS Lambda是应用开发领域的一把新钥匙,它为软件行业带来了无限的惊喜和可能。无服务器技术的简洁、事件驱动工作流的高效,无不是应用开发工艺乃至整个传统软件工业的一抹曙光。
我生于意大利,纵游欧陆,每每感叹跨语种工作协调之艰难。用英语写作本书实属不易。如今在中国几位译者的努力下,我的书得以远播东土,惠及遥远东方的同仁,本人实感欢欣鼓舞。翻译的事业是如此伟大,它能打破语言的隔膜,把前沿技术带给全世界志趣相投、理想相近的朋友,解决一个个新的问题。我衷心希望读者能从此书中获得新知,乘AWS的东风,扶摇直上,纵横“云”霄。
Danilo Poccia
AWS技术布道师
2017年4月24日
推荐序
再过几年,我们将看到如下局面:单靠一个创始人,这个能够使用无服务器技术的工程师,就能撑起一个十亿美元级别的创业公司。无服务器技术把如今的IT乱世带入了一个有迹可循的新世界—开发者无须等待任何人来审批一个新项目了。他们在服务器、架构、数据存储或配置工具上再无后顾之忧,可以在几分钟内构建一个新应用。从商业角度来看,无服务器是革命性的,因为在投产之前,开发者都不必支付任何费用,只有当客户开始使用服务了,开发者才需要付费。这事实上已经属于按需分配的经济模式了。
本书极好地普及了无服务器技术,也极好地深挖了AWS Lambda。
我初见作者Danilo Poccia,是在伦敦举行的亚马逊大会上。当时他负责一个工业分析的技术短会,我立刻就被他务实的方法论和对无服务器的动人热情吸引住了。作为一名布道师,Danilo有足够的经验把无服务器技术分析清楚,这一点在本书中体现得淋漓尽致。
本书清楚又详尽,内容和编排都是经过深思熟虑的。书中包含大量的小任务和函数,同时剔除了艰深复杂的跟配置服务器环境相关的内容,因此既适合初学者,也适合对无服务器技术基本概念(比如事件驱动编程)有所了解的读者。
书中提供的代码样本同样构架严谨,它们以JavaScript和Python的形式共享在GitHub上。Danilo从认证服务开始,一路讲到实战部署,由浅入深地讲解了无服务器应用的构建思路。他解释了无服务器为什么应该写成单一函数,以便部署到AWS Lambda中,由于无服务器是事件驱动的,他又进一步解释了如何整合第三方服务,从而实现函数即服务。
AWS已经成为云技术的工业标准,而无服务器将对AWS的使用方式产生巨大的影响。在接下来的几年里,本书将成为软件开发的必读经典。
James Governor
RedMonk联合创始人
媒体评论
—费良宏,AWS首席布道师
Serverless架构与其说是技术的变革,不如说是一种思维方式的转变。而本书用通俗易懂的语言介绍Severless架构的基本概念,同时结合AWS Lambda服务的实际应用,帮助我们很快实现这种转变。无论对开发人员、架构师还是决策者,本书都是一本值得一读的好书!
—季奔牛,上海思岚科技,云平台事业部总监
如果说无服务器架构是一辆无人驾驶汽车,那么Lambda就是汽车的大脑,让汽车从容应对各种突发事件。而此书是把我们带入另一个大脑的钥匙。
—薛江波(Jumbo Xue),在南半球种菜的云计算解决方案架构师
AWS Lambda是一款优秀的函数式编程的核心计算服务,使用Lambda+API Gateway可快速搭建一套无服务器的Web App架构。其先进的技术、理念不仅提供了优秀的技术解决方案,推动着微服务架构的发展,更能够给所有技术人员带来新时代的高维度的思考。相信读完本书,您会收益良多。
—阿正(Dean),Webank,SRE工程师
这是一本介绍Serverless架构,借助Amazon Lambda及AWS上的其他服务,并结合丰富且浅显易懂的例子,试图让大家从DevOps向No-Ops转变的好书。
—曹辉,上海思岚科技有限公司,云端测试架构师
AWS Lambda是当前最受欢迎的Serverless服务之一,具有启动快速、资源利用率高以及扩展性强等优点,本书通过详实的例子,说明如何使用Lambda来构建Serverless应用的方法,很值得一读。
—张海宁,VMware中国研发中心,技术总监
本书能让你系统地掌握AWS Lambda技术,一起跟随大神走进边缘计算的世界吧!
—任小火(xiaohuo200@gmail.com),后端工程师
本书通俗易懂地介绍了AWS Lambda的原理,并结合大量实例说明如何使用AWS Lambda开发Serverless应用,是一本不容错过的好书。
—刘果,华为开源软件能力中心,主任工程师
Serverless架构作为Cloud Native应用的一种最佳实践,让创业者得以专注于业务逻辑的创新,极大地拓宽了创业者践行“精益创业”方法论的落地边界。而本书正是创业者从零到一实践Serverless架构的第一向导。
—丁立,华兴资本逐鹿X,CTO
AWS Lambda是Serverless新一代计算模式的第一个商业实现,通过结合AWS丰富的云服务,特别是IoT服务,有无限的创新空间。本书讲解深入浅出,为架构师开启了一扇全新的架构设计领域之门。
—罗文江,招商银行总行信息技术部架构办,云计算架构师