## 视频
<video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video>
## 导读
本论坛介绍 [Amazon API Gateway](https://aws.amazon.com/cn/api-gateway/?trk=cndc-detail) 及其解决的问题。了解 API Gateway 的各个部分及其工作原理,包括常见和不常见的用例。了解为什么应该使用 API Gateway 及其功能。
## 演讲精华
<font color = "grey">以下是小编为您整理的本次演讲的精华,共1000字,阅读时间大约是5分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font>
埃里克·约翰逊是亚马逊云科技(Amazon Web Services)的主要开发者倡导者。他在演讲开始时介绍了自己及其背景。他在亚马逊云科技工作已超过5年,专注于支持云端的响应式设计、API和[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)开发。在加入亚马逊云科技之前,埃里克拥有超过20年的开发人员和解决方案架构师经验。虽然他的名片上写着主要开发者倡导者,但埃里克自嘲地认为,他更像个热衷于将基础设施作为代码的“黑客开发者”。在工作之余,埃里克表示他有五个孩子,他还是一名鼓手,自称美食家。
在深入主题之前,埃里克简要介绍了他演讲风格的一些轻松规则。他解释说,当他举起一根手指时,他可能会大声说出一个不同的数字——因此观众应倾听他的话而非直接数他的手指。他还提到,他更喜欢使用空中引号而非正确的撇号手势99%的时间,因为他觉得这样看起来更好。最后,他澄清说,他会100%时间用大拇指而非其他手指以避免任何误解。埃里克强调,这些怪癖只是他的一部分。
转到主要内容,埃里克解释了这次会议将关注人们对亚马逊API网关各种功能的认识不足的问题。API网关作为后端服务的“前门”,处理认证、授权、限流、缓存等功能。埃里克首先探讨了API网关的基本原理。
他解释道,API网关支持REST和WebSocket API。如果没有API网关,客户端必须直接与后端服务通信。这可能使后端系统过度暴露,并导致用于路由和版本控制的复杂客户端侧逻辑和安全问题。API网关将所有这些复杂性抽象为一个简单的界面。
埃里克随后详细介绍了API网关所支持的一些关键集成模式。对于Lambda函数,有两种选项可供选择——简单代理集成和直接集成。通过代理方式,API网关会将请求直接传递至Lambda函数并原样返回响应。这种集成方式易于设置。而通过直接集成,API网关可以使用名为Velocity的模板化语言在请求抵达Lambda之前对请求和响应进行修改。这使得在请求抵达Lambda之前能够对数据进行处理。尽管直接集成更为复杂,但同时也更为强大。
除了Lambda之外,API网关还能够直接与一些亚马逊云科技服务进行集成,例如DynamoDB。借助VTL转换技术,您可以直接从API网关端点进行DynamoDB查询,而无需额外的计算资源。埃里克展示了一个电子商务应用示例,展示了如何利用VTL将视频搜索请求转换为针对具有超过500,000个项目的DynamoDB表的查询。
HTTP集成使得API网关能够代理请求至任何公共HTTP后端。埃里克以他在过去的工作经历为基础,构建了一个代理至Google地图端点的API为例。这样既保证了Google API密钥的安全性,同时又充分利用了该服务。
除了核心集成模式之外,埃里克还强调了API网关的一些高级功能,使其更具价值。首先是授权方面。API网关内置了各种授权机制,包括IAM权限、Cognito用户池以及Lambda授权器。埃里克强烈推荐在API网关层处理授权,而非在单独的Lambda函数或后端中进行处理。这样可以避免跨服务的授权逻辑重复问题。
接着,他介绍了API网关所提供的缓存功能。API网关内置了对区域内缓存的支持,这为在同一亚马逊云科技区域内的用户提供重复请求提供了快速响应。然而,如果需要实施边缘缓存,埃里克建议选用[Amazon CloudFront](https://aws.amazon.com/cn/cloudfront/?trk=cndc-detail)作为API网关的前端,因为这能提供更强大的灵活性。
日志记录和指标问题将在后续讨论中进行深入探讨。埃里克强调了对API请求和响应进行稳健的日志记录的重要性。这些日志记录和指标可在亚马逊云科技的CloudWatch中进行分析,以设定诸如错误率和抑制等方面的警报。这为我们提供了有关API使用情况和性能的深刻见解。然而,埃里克发现,许多公司虽然收集了日志,但却未能充分利用它们。
在抑制方面,API Gateway具有默认限制,即每秒10,000次请求(RPS)和每个区域每秒5,000个并发请求。埃里克强调,配置自定义抑制规则而非依赖默认规则至关重要。可以根据业务优先级为不同的API资源和方法设置规则。他建议分析流量模式并配置抑制以确保即使在峰值负载期间关键路径也有足够的空间。例如,您可以将8,000 RPS分配给GET请求,但将完整的10,000 RPS保留给关键的POST方法。
埃里克还介绍了使用API Gateway进行的金丝雀部署。这允许在新的API版本推出之前将其路由到总流量的一小部分,例如10-20%,以便在进行所有流量的路由之前进行测试。然而,他指出,这最适合用于测试API Gateway配置更改而不是后端代码更改。其他亚马逊云科技服务,如Lambda,更直接地支持对代码更改的金丝雀测试。
其他重要功能包括细粒度的资源策略、与亚马逊云科技Web应用程序防火墙的集成、客户端证书验证的相互TLS、导入和导出OpenAPI规范以及根据JSON模式进行请求验证。在整个演讲中,埃里克穿插了一些真实世界的例子和他过去的经验故事,以说明客户如何能从API Gateway的功能中受益。
在结束语中,埃里克重申了API Gateway提供的许多强大功能远不止作为API前端这么简单。他鼓励观众利用内置的安全、可观察性、测试和OpenAPI集成来在亚马逊云科技上创建健壮且可扩展的API。关键在于,投资时间去正确学习和利用API Gateway的功能可以为基于API的应用程序带来巨大的回报。
**下面是一些演讲现场的精彩瞬间:**
应用程序编程接口(API)作为一种抽象层,它隔离了底层实现,减少了服务的暴露,并简化了接口。
![](https://d1trpeugzwbig5.cloudfront.net/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that/images/rebranded/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that_0.png)
API网关能够管理区域缓存,而云前端则负责边缘缓存和全球覆盖。
![](https://d1trpeugzwbig5.cloudfront.net/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that/images/rebranded/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that_1.png)
通过API网关控制台,用户可以轻松地点击创建API,然后导出OpenAPI规范以便进行共享和重用。
![](https://d1trpeugzwbig5.cloudfront.net/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that/images/rebranded/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that_2.png)
演讲者强调了API网关的强大验证功能,该功能可以在调用后端服务之前验证请求模式和要求参数,从而避免不必要的调用。
![](https://d1trpeugzwbig5.cloudfront.net/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that/images/rebranded/SVS323-I_didn_t_know_Amazon_API_Gateway_did_that_3.png)
## 总结
埃里克·约翰逊详细地介绍了亚马逊API网关的一些不为人知的功能,使其成为强大的工具。首先,他解释了API网关的核心作用,作为后端服务统一接口的抽象层。
接着,约翰逊深入探讨了一些关键功能,如精细的授权控制、内置的区域缓存以及通过限流策略实现的高级流量管理。他强调了监控和指标在维护API运行状况中的重要性。
除此之外,API网关还包含一些新功能,如用于按比例流量测试更改的试验部署功能、限制访问的资源策略以及与亚马逊云科技WAF的安全集成。新特性还包括用于加强客户端验证的双向TLS以及内置对OpenAPI规范的支持,以简化API定义。
约翰逊最后鼓励用户充分利用API网关的丰富功能集来降低复杂性和运营开销。结论是,如果充分利用,API网关所提供的远比基本的请求路由更多。
## 演讲原文
## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
[2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站")
[点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯!
[点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯!
## 即刻注册亚马逊云科技账户,开启云端之旅!
[【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“")
[【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")