Serverless架构:无服务器应用与AWS Lambda
  • 推荐0
  • 收藏7
  • 浏览926

Serverless架构:无服务器应用与AWS Lambda

Dr. Peter Sbarski? (作者)  覃宇 (译者)

  • 书  号:978-7-121-34268-4
  • 出版日期:2018-07-27
  • 页  数:384
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Serverless Architectures on AWS : With examples using AWS Lambda
  • 原书号:9781617293825
  • 维护人:张春雨
纸质版 ¥108.00
无服务器是软件架构世界中的热门新话题,它充分利用大量的云平台服务,让开发者只需关注核心业务逻辑的实现。同时,它按需分配和使用资源的运行方式,在降低基础设施成本的同时还能获得强大的弹性。本书的作者 Peter Sbarski 是完全拥抱无服务器架构的早期开发者之一,他将自己在应用无服务器架构中获得的宝贵经验总结成本书,呈现给广大的读者。更难能可贵的是,全书贯穿了 AWS Lambda 实例和大量相关的练习。读者一边阅读,一边动手完成练习,就可以循序渐进地掌握无服务器架构的核心技术。无论你是软件开发新手,还是架构师老兵,本书都是不可多得的了解无服务器架构的绝佳读物。
彻底颠覆Iaas|SaaS|PaaS 释放云计算潜力 面向未来云架构 高弹性|低成本|按需使用资源
译者序
过去二十年,硅谷的创业神话激励着 IT 从业者们前赴后继地投入创业大潮。而在这汹涌的大潮中,快速发展的技术和不断涌现的平台和服务也让创业的技术门槛越来越低。三五个好友一起想出一个点子,再有一个程序员,租一些云服务器,就可以大干一场了。然而,事情就真的是这么简单吗?有的团队开发的爆款应用几天之内流量即可以迅速飙升,日活用户可以达到数百万 ;却由于最初架构设计时对扩展性的忽视,服务器不堪重负,页面加载开始变慢,甚至无法访问。开发团队加班加点想尽各种办法纠正架构的设计问题并扩展资源才让应用恢复正常,却为时已晚。用户早已失去了耐心,也让应用错失了最佳的扩张机会。有的团队却正好相反,它们会先花上好几个月时间精心地分析、设计、实现、测试可扩展的应用架构,甚至还会开发全套的自动化部署运维工具。然而,等到精心打磨的产品推出的那一天,市场上早已被同类竞品完全瓜分。
这样的案例在现实中屡见不鲜。市场的机会转瞬即逝,爆款的压力突如其来,而创业团队却被架构的扩展性和基础设施的规划运维束缚了手脚,疲于应付。除了提升团队自身的架构和运维能力之外,还要想办法降低基础设施运维的门槛。无服务器技术也许就是这些创业团队的希望。采用了无服务器技术架构之后,开发者使用现成的第三方服务并专注于应用的业务功能代码开发,不用再关心以服务器为代表的基础设置的规划、配置和维护。而应用运行时使用的服务完全是按需分配的,一旦出现吞吐量的激增,这些服务会自动快速扩展到达可用性的要求。而应用使用的服务都是按照实际的使用量来计费的,这将大大降低基础设施投入的成本。在基础设施即服务、容器即服务和平台即服务的基础上,无服务器架构对云计算进行了更高层次的抽象,大大降低了运维的门槛和成本。
然而,无服务器架构并不是软件架构的银弹。在拥抱大量第三方服务的同时,也让系统架构和提供服务的特定供应商锁定在了一起,日后如果迁移不会那么轻松。第三方服务天然的分布式特质要求架构设计事先就要考虑网络故障和延迟,以及一致性问题。无服务器架构运行资源的限制,也会要求运算要简单,并能在短时间内完成。事件驱动和推送要求计算被拆成许多小巧的无状态函数,其集成和管理势必变得更加复杂。那么,无服务器架构有哪些典型的使用场景?它又可以运用哪些常见的设计模式?使用无服务器架构时有哪些需要特别留意的问题?它使用的工具和实践和传统的开发方式有什么区别呢?
本书的作者 Peter Sbarski 是最早实践无服务器架构的开发者之一,他担任工程副总裁的 A Cloud Guru 这个在线视频教育服务就是完全基于无服务器架构创建的。贯穿本书的视频分享网站实例和练习几乎就是 A Cloud Guru 的迷你版,作者将他实施无服务器架构的经验毫无保留地呈现在我们面前。作者在本书的前两章总结了无服务器架构常见的使用场景和架构模式。从第 3 章开始直到第 9 章,分别介绍了无服务器技术中的身份认证和授权、函数计算、网关、对象存储以及数据库等重要内容,所有内容的学习都是围绕着视频分享网站的练习展开的,十分生动。作者在第
10 章对全书进行了总结,并介绍了一些值得关注的工具、实践和趋势。本书末尾的附录则介绍了许多服务和工具的使用。
无服务器架构的话题始终无法回避 AWS 这个现象级产品。AWS 于 2014 年和2015 年先后推出的 Lambda 和 API Gateway 两款产品将 AWS 的各种服务集成在了一起,让无服务器架构变成了触手可及的现实。本书的练习就需要使用 AWS 的重要服务 S3、Lambda 和 API Gateway。而一些更专业的领域也涌现了一批明星服务和产品,例如本书中介绍的身分认证和授权服务 Auth0 和实时数据产品 Firebase( 已经被 Google 收购 )。无服务器技术发展日新月异,本书英文版出版已经快两年,尽管译者在翻译时已经就其中一些过时内容进行了标注。但其中涉及到 AWS 和其他第三方服务的讲解难免落后,读者可以结合这些产品的官方文档来进行阅读。AWS的中文官方文档质量颇高,值得阅读。
本书的翻译初稿于 2018 年春节后结束,在此要感谢所有译者期间的辛勤付出以及家人的理解和支持。同时也要感谢编辑们的耐心和严谨,谢谢你们 !

序一
Patrick Debois DevOps Jedi、DevOpsDays 创始人 Small Town Heroes 首席技术官
编写专注于一个目标的程序,并尽可能把它做好,编写能够互相协同工作的程序——这是 Unix 哲学的核心思想,由 Unix 的设计者 Ken Thompson 首先提出。最近几年以 Google、Netflix、Uber 和 Airbnb 为代表的公司已经证明,在现代的分布式系统中,可以简单地将这些核心思想中的程序这个词替换成服务。这种思想的最新变化 :无服务器计算,宣示了托管服务和自管理基础设施的智能组合是如何显著改善开发时间和运营成本的。
本书很好地通过一系列实用的落地案例研究搭配了新兴的无服务器设计模式的内容,初学者和实干家都是本书理想的目标读者。无服务器是一门崭新的学科,作者成功地兼顾了广泛的主题,同时还不失深度和重点。本书饱含着作者真挚的热情、细致的洞察力,以及值得分享的知识宝藏。
无服务器计算需要你改变构建软件架构的方式,随着许多范式的改变,有一些习惯你必须忘记。在热情洋溢地拥抱新技术的同时,作者也用了不小的篇幅来罗列这些新架构类型的优势和局限。作为惊喜,它还总结了自己运营真实无服务器架构旅程中的洞见。这种“实践出真知”的态度展示了无服务器所带来的丰厚回报,这将帮助你的企业专注并取得成功。

序二
Donald F. Ferguson 博士 Seeka TV 联合创始人、首席技术官 哥伦比亚大学计算机科学系客座教授
很多技术都在颠覆应用程序的开发、测试和交付。云计算和各种形式的“某某即服务”(as-a-service)就是这些重新定义应用程序开发和交付的例子。许多团队和项目在尝试引入新技术的时候都特别挣扎,有时甚至还会失败。而失败的罪魁祸首就是把这些截然不同的技术强加在现有的应用程序架构和编程模型上。精心设计、实现和交付的跨云应用程序和传统应用程序有着天壤之别。本书在介绍新的应用程序架构方面做得十分出色,还提供了如何成功应用无服务器技术的详尽而实用的指导。
基础设施即服务(Infrastructure as a Service,IaaS)、软件即服务(Software as a Service,SaaS)以及平台即服务(Platform as a Service,PaaS)是内部部署应用程序和基础设施架构的云平台版本。这些模型可以提供价值但却无法彻底释放云平台的潜力。SaaS 提供了关于业务问题的不完全标准的解决方案,但无法快速地开发和交付更多有针对性的应用程序。IaaS 和 PaaS 提供了资源使用效率,却无法消除配置和管理软件服务器基础设施的成本。这些模型都无法借用 Web 可调用 API 的大爆发,基于它们的 API 经济已经渐成气候。无服务器架构是唯一一种架构,这种架构可以消除软件服务器成本、提供快速开发和交付灵活性,并管理有针对性的专注的云平台应用程序。
本书的第一部分——踏上征途为创建无服务器架构打下基础。这部分说明了这种新架构的基本特性和优势,包括该技术优缺点的清晰解释和选择指导。同样重要的是,这部分还介绍了架构设计模式。成功采纳转型中的计算技术的唯一重要因素就是通过应用这些设计模式实现来了解其最佳实践。这部分是在一个真实解决方案的上下文中解释了这些模式,这个解决方案就是作者使用无服务器架构实现的 :“一言不合就秀代码”。作者的实践经验和成功经历也是我推荐本书的主要原因。
人们往往错误地将无服务器等同于某一项具体的技术。比如,AWS Lambda 函数。但无服务器架构范围更广,包括 UI 设计、发布 / 订阅基础设施、工作流 / 编排、活动数据库、API 网关和管理,以及数据服务。总的来说,这些技术势不可挡。本书介绍了做出贡献的技术所扮演的角色以及发挥的作用,详细地介绍了如何使用Amazon Web Services 中的这些技术集体实现来构建一个可以工作的应用程序。入门手册和教程是能够重复并可靠地使用该技术的核心。
数据层和安全性是任何应用程序都不可回避的最困难的两个架构领域。本书对两个话题都有详尽的阐述。这部分内容解释了概念(例如身份认证和授权),将概念落实到了应用程序场景(例如 Web 应用程序)中,并提供了如何设计实现安全性和数据层的具体而详尽的例子。这些细节还包括使用 Auth0 和 Google Firebase 这些非 AWS 技术的示例。
我的公司也正在使用 AWS 和无服务器架构来构建解决方案,我发现这本书和作者的其他材料对我们的进步至关重要。我在哥伦比亚大学教授计算机科学的高级课程,该课程主要关注互联网应用程序和跨云应用程序。本书的内容是我所教授的大部分内容的基础。我的经验表明,本书是一本释放云计算潜力不可取代的关键书籍。真实应用程序上下文中关于 AWS 的详细信息是无价的,这些概念和模式适用于使用任何技术的任何无服务器解决方案。

前言
我是从 Sam Kroonenburg 那儿第一次听说 AWS Lambda 的。那时 Lambda 刚刚发布,但 Sam 对它的前景已经十分看好了。他和我谈起了在云端执行函数、AWS中自动化的巨大潜力,以及基于事件的工作流的开发。一切都如此令人着迷,充满了无限可能。不用配置和管理基础设施就能执行我的代码,这个想法看起来很酷而且马上就能梦想成真。作为软件工程师,我一直都想更专注于架构和代码,而不是基础设施、运维和系统管理。我用 Amazon Web Services 来实现这一切的机会来了。
几个月之后,API Gateway 横空出世,并解决了当时 Lambda 最大的问题。使用标准的 HTTP 请求调用 Lambda 函数成为可能。无须服务器就创建快速且可扩展的应用程序后端,这个梦想在我们眼前变成了现实。我的第一个无服务器项目是由Sam Kroonenburg 发起的 A Cloud Guru,现在已经发展成了一个大型的学习管理平台。这个平台是完全无服务器的,运行成本非常低并可以快速地迭代。我们只需要专注于添加业务价值和新特性,而不需要担心基础设施管理和复杂的运维,这使我们的工作更有意思,而且这个平台还可以不可思议地扩展。
在构建 A Cloud Guru 的过程中,我们也意识到无服务器并不是在 Lambda 中运行代码这么简单,它还要用到第三方服务和产品。我们使用了托管身份认证服务和托管数据库,节省了数周甚至数月的开发时间。我们识别出了这个系统中的一些重要但不必自己构造的部分,比如支付处理和客户消息。这些部分十分重要但我们不用重新造轮子。我们找到了完美契合我们无服务器后端的不错的第三方服务,并将它们和系统其他部分集成到了一起。
第三个关键的话题当然就是选择正确的设计模式和架构了。我们发现,事件驱动的架构天然地适用于无服务器应用程序,而我们也致力于让我们的系统完全由事件驱动。我们还考虑到了安全性、可靠性以及可扩展性,还有如何组合函数和后端服务来达到更好的效果。
自从帮助构建了第一个大规模无服务器应用程序并回顾了其他无服务器系统之后,我越来越清晰地意识到 :可扩展的云函数、可靠的第三方服务,以及无服务器架构和设计模式的组合就是云计算演进的未来。未来几年,我们将看到初创公司和老牌企业都将采用无服务器架构,这将帮助它们不断创新并赶超竞争对手。本书是对未来趋势的展望,也是如何起步的指导手册。我希望你喜欢本书并和我一起进入探索无服务器的旅程。
没有来自我的同事、同行、家人和朋友的鼓励、反馈和支持,本书是不可能完
成的。我很幸运地遇到了身边这些才华横溢的人,他们倾听并提出了宝贵的意见和
观点。

关于本书
无论你是初学者还是专家,无论是刚开始 IT 职业生涯还是有数年的工作经验,这本书都将带你进入无服务器架构的旅程。你会学习关键的设计模式,了解使用无服务器方法的优劣,并使用 AWS Lambda、API Gateway、Elastic Transcoder、S3、Auth0 和 Firebase 构建你自己的视频分享网站。你还会学习许多 AWS 知识,以及那些值得推荐的用来管理和发布你的无服务器应用程序的框架。
本书分为三部分。第一部分介了绍基本的无服务器原理,探讨了关键的架构和设计模式。你会开始使用 AWS Lambda 构建第一个事件驱动的管道,并学习关键的AWS 服务。例如,无所不在的万能的 Identity and Access Management 服务。
第二部分重点关注了身份认证和授权、AWS Lambda 以及 API Gateway。这部分的所有章节对理解和构建无服务器应用程序都很重要。读完这部分并完成示例之后,你将彻底掌握无服务器应用程序所需的关键技术。
第三部分讨论了构建真实应用程序所需的其他服务和架构。这部分的关键重点是文件和数据存储,分别使用 S3 和 Google 的 Firebase 实现。最后一章补充了更多技术和服务的信息,它们可以用来扩展你的无服务器应用程序。
在这本书的末尾,你会发现七个附录,它们为你提供了关于各种主题的额外信息。例如,最后一个附录涵盖了 Serverless 框架以及 Serverless Application Model(无服务器应用程序模型,SAM)。你应该仔细阅读并尝试这个附录中的步骤。
AWS 和其他服务(如 Auth0 和 Firebase)的发展非常迅速,所以当你阅读本书时,如果某些截图或操作有所不同,请不要惊讶。无服务器事件驱动架构的基本原理会保持不变,但是一些微末的细节,比如按钮的位置或是按钮的标签,可能会随着时间不断变化。本书适用于那些 AWS 和云计算的新手开发者和解决方案架构师,也适合云计算开发老兵。我希望你会发现一种新方式,来构建成本更低、扩展性更好和趣味更多的应用程序!

目录

序一.........................................................................................XIII
序二..........................................................................................XV
前言........................................................................................XVII
致谢.........................................................................................XIX
关于本书...................................................................................XXI
关于作者................................................................................XXIII
关于封面................................................................................XXIV
第 1 部分..踏上征途 ......................................................................................... 1
1 ..无服务器初探 ........................................................................................................... 3
1.1 来龙去脉 ..........................................................................................................4
1.1.1 面向服务的架构与微服务 ..................................................................5
1.1.2 软件设计 ..............................................................................................6
1.2 无服务器架构原则 ..........................................................................................9
1.2.1 根据需要使用计算服务执行代码 ......................................................9
1.2.2 编写单一用途的无状态函数 ............................................................10
1.2.3 设计基于推送的、事件驱动的管道 ................................................10
1.2.4 创建更厚、更强大的前端 ................................................................ 11
1.2.5 拥抱第三方服务 ................................................................................12
1.3 从服务器过渡到服务 ....................................................................................12
1.4 无服务器的利与弊 ........................................................................................13
1.4.1 决策驱动因素 ....................................................................................13
1.4.2 什么时候使用无服务器 ....................................................................14
1.5 本章小结 ........................................................................................................15
2 ...架构与模式 ........................................................................................................... 17
2.1 使用场景 ........................................................................................................17
2.1.1 应用程序后端 ....................................................................................18
2.1.2 数据处理与操作 ................................................................................18
2.1.3 实时分析 ............................................................................................19
2.1.4 遗留 API 代理 ....................................................................................19
2.1.5 计划服务 ............................................................................................19
2.1.6 机器人(Bot)和技能(Skill) .........................................................20
2.2 架构 ................................................................................................................20
2.2.1 计算即后端 ........................................................................................20
2.2.2 遗留 API 代理 ....................................................................................25
2.2.3 混合 ....................................................................................................26
2.2.4 GraphQL .............................................................................................28
2.2.5 计算即胶水 ........................................................................................29
2.2.6 实时处理 ............................................................................................31
2.3 模式 ................................................................................................................32
2.3.1 命令模式 ............................................................................................32
2.3.2 消息传输模式 ....................................................................................33
2.3.3 优先级队列模式 ................................................................................35
2.3.4 扇出模式 ............................................................................................36
2.3.5 管道和过滤器模式 ............................................................................37
2.4 本章小结 ........................................................................................................38
3 ..建立无服务器应用程序 ...................................................................................... 39
3.1 24 小时视频 ...................................................................................................40
3.1.1 总体需求 ............................................................................................41
3.1.2 Amazon Web Services(AWS) .........................................................42
3.1.3 创建第一个 Lambda 函数 .................................................................44
3.1.4 命名你的 Lambda ..............................................................................46
3.1.5 本地测试 ............................................................................................47
3.1.6 部署到 AWS.......................................................................................48
3.1.7 连接 S3 和 Lambda ............................................................................50
3.1.8 在 AWS 中测试..................................................................................51
3.1.9 观察日志 ............................................................................................53
3.2 配置 Simple Notification Service ...................................................................54
3.2.1 连接 SNS 和 S3..................................................................................55
3.2.2 从 SNS 接收电子邮件 .......................................................................58
3.2.3 测试 SNS ............................................................................................58
3.3 设置视频权限 ................................................................................................58
3.3.1 创建第二个函数 ................................................................................58
3.3.2 配置与安全 ........................................................................................59
3.3.3 测试第二个函数 ................................................................................60
3.4 生成元数据 ....................................................................................................61
创建第三个函数和 FFprobe ..........................................................................61
3.5 收尾 ................................................................................................................64
3.6 练习 ................................................................................................................66
3.7 本章小结 ........................................................................................................67
4 ..设置你的云服务 ................................................................................................... 69
4.1 安全模型和身份管理 ....................................................................................70
4.1.1 创建和管理 IAM 用户 ......................................................................70
4.1.2 创建 IAM 组 ......................................................................................73
4.1.3 创建角色 ............................................................................................76
4.1.4 资源 ....................................................................................................77
4.1.5 权限和策略 ........................................................................................77
4.2 日志与警报 ....................................................................................................79
4.2.1 设置日志 ............................................................................................80
4.2.2 日志保留期 ........................................................................................81
4.2.3 筛选器、指标和警报 ........................................................................81
4.2.4 搜索日志数据 ....................................................................................83
4.2.5 S3 和日志 ...........................................................................................83
4.2.6 关于警报的更多操作 ........................................................................84
4.2.7 CloudTrail ...........................................................................................88
4.3 成本 ................................................................................................................90
4.3.1 创建账单提醒 ....................................................................................91
4.3.2 监控和优化成本 ................................................................................92
4.3.3 使用 Simple Monthly Calculator .......................................................93
4.3.4 计算 Lambda 和 API Gateway 的成本 .............................................94
4.4 练习 ................................................................................................................96
4.5 本章小结 ........................................................................................................97
第 2 部分..深入核心 ...................................................................................... 99
5 ..身份认证和授权 ................................................................................................ 101
5.1 无服务器环境中的身份认证 ......................................................................101
5.1.1 无服务器方法 ..................................................................................102
5.1.2 Amazon Cognito ...............................................................................104
5.1.3 Auth0 ................................................................................................105
5.2 为 24 小时视频增加身份认证 ....................................................................106
5.2.1 计划 ..................................................................................................106
5.2.2 直接调用 Lambda ............................................................................107
5.2.3 24 小时视频网站 .............................................................................108
5.2.4 Auth0 配置 ....................................................................................... 110
5.2.5 在网站中加入 Auth0 ....................................................................... 113
5.2.6 测试 Auth0 的集成 .......................................................................... 118
5.3 与 AWS 集成 ................................................................................................ 119
5.3.1 用户信息 Lambda ............................................................................120
5.3.2 API Gateway ....................................................................................124
5.3.3 映射 ..................................................................................................126
5.3.4 通过 API Gateway 调用 Lambda ....................................................130
5.3.5 自定义授权方 ..................................................................................130
5.4 委托令牌 ......................................................................................................135
5.4.1 真实案例 ..........................................................................................136
5.4.2 开通委托令牌 ..................................................................................136
5.5 练习 ..............................................................................................................137
5.6 本章小结 ......................................................................................................137
6 ..编排者 Lambda ................................................................................................. 139
6.1 Lambda 内幕 ................................................................................................139
6.1.1 事件模型和源 ..................................................................................140
6.1.2 推送和拉取事件模型 ......................................................................141
6.1.3 并发执行 ..........................................................................................142
6.1.4 容器重用 ..........................................................................................143
6.1.5 冷 Lambda 和暖 Lambda .................................................................143
6.2 编程模型 ......................................................................................................145
6.2.1 函数处理程序 ..................................................................................145
6.2.2 事件对象 ..........................................................................................145
6.2.3 上下文对象 ......................................................................................147
6.2.4 回调函数 ..........................................................................................147
6.2.5 日志 ..................................................................................................148
6.3 版本管理、别名和环境变量 ......................................................................148
6.3.1 版本管理 ..........................................................................................148
6.3.2 别名 ..................................................................................................150
6.3.3 环境变量 ..........................................................................................152
6.4 使用命令行界面(CLI) ..............................................................................154
6.4.1 调用命令 ..........................................................................................155
6.4.2 创建和部署函数 ..............................................................................155
6.5 Lambda 模式 ................................................................................................157
6.5.1 异步瀑布 ..........................................................................................158
6.5.2 序列与并行 ......................................................................................163
6.5.3 使用库 ..............................................................................................164
6.5.4 把逻辑移到另一个文件中 ..............................................................167
6.6 测试 Lambda 函数 .......................................................................................167
6.6.1 在本地测试 ......................................................................................167
6.6.2 编写测试 ..........................................................................................168
6.6.3 在 AWS 中测试................................................................................171
6.7 练习 ..............................................................................................................173
6.8 本章小结 ......................................................................................................173
7 ..API.Gateway ..................................................................................................... 175
7.1 作为接口的 API Gateway ............................................................................176
7.1.1 和 AWS 服务集成............................................................................177
7.1.2 缓存、限制与日志 ..........................................................................177
7.1.3 阶段和版本管理 ..............................................................................178
7.1.4 脚本 ..................................................................................................178
7.2 使用 API Gateway ........................................................................................178
7.2.1 计划 ..................................................................................................180
7.2.2 创建资源和方法 ..............................................................................181
7.2.3 配置方法执行 ..................................................................................185
7.2.4 Lambda 函数 ....................................................................................187
7.2.5 更新网站 ..........................................................................................191
7.3 优化网关 ......................................................................................................194
7.3.1 限制 ..................................................................................................194
7.3.2 日志 ..................................................................................................197
7.3.3 缓存 ..................................................................................................199
7.4 阶段和版本管理 ..........................................................................................202
7.4.1 创建阶段变量 ..................................................................................202
7.4.2 使用阶段变量 ..................................................................................203
7.4.3 版本管理 ..........................................................................................205
7.5 练习 ..............................................................................................................205
7.6 本章小结 ......................................................................................................206
第 3 部分..拓展架构 ................................................................................... 207
8 ..存储 ....................................................................................................................... 209
8.1 更智能的存储 ..............................................................................................209
8.1.1 版本控制 ..........................................................................................210
8.1.2 托管静态网站 ..................................................................................212
8.1.3 存储类别 ..........................................................................................214
8.1.4 对象生命周期管理 ..........................................................................216
8.1.5 转移加速 ..........................................................................................217
8.1.6 事件通知 ..........................................................................................219
8.2 安全上传 ......................................................................................................220
8.2.1 架构 ..................................................................................................221
8.2.2 上传策略 Lambda ............................................................................222
8.2.3 S3 CORS 配置 .................................................................................228
8.2.4 在网站中上传 ..................................................................................228
8.3 限制对文件的访问 ......................................................................................233
8.3.1 禁止公开访问 ..................................................................................233
8.3.2 生成预签名 URL .............................................................................233
8.4 练习 ..............................................................................................................234
8.5 本章小结 ......................................................................................................235
9 ..数据库 ................................................................................................................... 237
9.1 Firebase 简介 ................................................................................................238
9.1.1 数据结构 ..........................................................................................238
9.1.2 安全规则 ..........................................................................................240
9.2 为 24 小时视频添加 Firebase ......................................................................241
9.2.1 架构 ..................................................................................................242
9.2.2 设置 Firebase ....................................................................................243
9.2.3 修改转码视频 Lambda ....................................................................245
9.2.4 Transcode Video Firebase Update 函数 ...........................................250
9.2.5 连接 Lambda ....................................................................................251
9.2.6 网站 ..................................................................................................253
9.2.7 端到端测试 ......................................................................................258
9.3 安全访问文件 ..............................................................................................259
9.3.1 签名 URL Lambda ...........................................................................260
9.3.2 API Gateway 设置 ...........................................................................261
9.3.3 再次更新网站 ..................................................................................262
9.3.4 提升性能 ..........................................................................................262
9.3.5 提升 Firebase 安全性 .......................................................................265
9.4 练习 ..............................................................................................................270
9.5 本章小结 ......................................................................................................270
10 ..最后一英里 ..................................................................................................... 271
10.1 部署与框架 ................................................................................................271
10.2 迈向更好的微服务 ....................................................................................272
10.3 Step Functions ............................................................................................277
10.4 AWS Marketplace .......................................................................................283
10.5 未来之路 ....................................................................................................285
A ..为无服务器架构而生的服务 ........................................................................ 287
B ..安装和设置 ........................................................................................................ 293
C ..身份认证和授权的更多信息 ......................................................................... 305
D ..再探 Lambda 内幕 .......................................................................................... 311
E ..模型和映射 ........................................................................................................ 317
F ..S3 事件消息结构 .............................................................................................. 335
G ..Serverless.Framework 和 SAM ................................................................. 337

读者评论

相关图书

Terraform:多云、混合云环境下实现基础设施即代码(第2版)

Yevgeniy Brikman ( (作者) 白宇 (译者)

Terraform工具已经成为DevOps领域的关键角色。在各种云平台和虚拟化环境(如AWS、Goolge Cloud、Azure等)中,可以对基础设施即代码(...

¥108.00

DevOps安全:云安全服务

Julien Vehent (作者) 覃宇 (译者)

本书主要介绍了 DevOps 实践中最容易被忽视的一环——安全,并且对云原生服务的安全保障也做了全面的阐述。书中详细介绍了 Web 攻击防范、权限验证、日志监控...

¥108.00

企业级DevOps技术与工具实战

刘淼 张笑梅 (作者)

本书包含DevOps理论的介绍,深入浅出地解析了DevOps体系所包括的Agile/Lean/ITSM/TPS各种方法的精粹和脉络,为DevOps爱好者提供了较...

 

SRE生存指南:系统中断响应与正常运行时间最大化

Nat Welch (作者) 冯文辉 冯文辉 (译者)

站点可靠性工程(Site Reliability Engineering,简称SRE)是一个令人兴奋的新兴领域,它专注于如何确保系统稳定、可靠地运行。本书基于一...

 

Zabbix企业级分布式监控系统(第2版)

吴兆松 (作者)

本书基于稳定版本Zabbix 4.0,对Zabbix的各项功能进行了详细而深入的讲解,包括监控系统规划、安装包定制、架构高可用、性能调优、指标数据采集、自动化处...

 

Nginx实战:基于Lua语言的配置、开发与架构详解

王力 王力 (作者)

本书主要讲解了Nginx在反向代理和应用开发中的作用,阅读本书可以了解Nginx在互联网开发中扮演的多个角色,充分利用这些角色的各项功能有助于提升服务的整体性能...

¥47.40