Amazon Web ServicesCloud

AWS:API Gateway

一、概述


Amazon API Gateway 是一项 AWS 服务,让开发人员能够创建、发布、维护、监控和保护任何规模的 API。您可以创建能够访问 AWS、其他 Web 服务以及存储在 AWS 云中的数据的 API。

可将 API Gateway 视为云中的一个背板,用于连接 AWS 服务和其他公有或私有网站。它可以提供一致的 RESTful 应用程序编程接口 (API),让移动和 Web 应用程序可以访问 AWS 服务。

API Gateway 的架构如下图所示。

二、应用场景


使用 API Gateway 的开发人员有两种:应用程序开发人员和 API 开发人员。应用程序开发人员通过在 API Gateway 中调用 API 方法,来构建一个正常运行的应用程序以调用 AWS 服务。API 开发人员创建和部署 API,以便启用 API Gateway 中所需的功能。API开发人员必须是拥有 API 的 AWS 账户中的 IAM 用户

API Gateway 可以创建、配置和托管 RESTful API,从而让应用程序可以访问 AWS 云。例如,应用程序可以调用 API Gateway 中的 API,以将用户的年收入和支出数据上传到 Amazon Simple Storage Service 或 Amazon DynamoDB,然后在 AWS Lambda 中处理数据以便计算应缴税额,最后通过 IRS 网站提交纳税申报单。

三、研究案例


使用API Gatway 代理集成创建API代理调用部署在EC2上Demo Server服务。

案例模型:

客户端发送HTTP Request 到API Gateway 部署的对外开放的API URL。

API Gateway通过方法请求和集成请求对HTTP Requst进行处理,然后将处理后的HTTP Request 转发到部署在EC2的服务器上。

EC2实例上的服务收到请求后接收处理数据并将HTTP Response返回给API Gateway。

API Gateway 通过方法响应和集成响应对HTTP Response 进行处理,将处理后的数据返回给客户端。

四、配置说明


启动EC2实例并配置EC2虚拟主机的环境。

在EC2 控制台选择创建实例,按照图示步骤配置EC2 实例。

配置完成并成功启动后使用SSH工具远程连接 EC2 实例。

连接成功后就可以像使用本地Linux服务器一样配置Linux环境并启动提供RestFul API 的服务程序。

在API Gateway控制台创建一个新的API。

创建好一个新的API后可以看到API的资源树页面

在操作菜单选择创建资源来创建一个API资源,创建方法是为 / 资源目录创建一个访问的方法。选择创建资源。

终端节点URL 写入部署在EC2虚拟主机的服务的API URL.点击保存即可创建好访问代理资源的一个API。

部署已创建好的API使API可用

五、总结


优势

API Gateway 可以帮助您提供可靠、安全并可以扩展的移动和 Web 应用程序后端。API Gateway 让您能够将移动和 Web 应用程序安全地连接到托管在 AWS Lambda 上的业务逻辑、托管在 Amazon EC2 上的 API 或者托管在 AWS 内部或外部的其他可公开寻址的 Web 服务。借助 API Gateway,您可以针对后端服务创建和运行 API。例如,您不需要开发和维护基础设施来处理授权和访问控制、流量管理、监控和分析、版本管理和开发工具包 (SDK) 的生成工作。

API Gateway 专为 Web 和移动开发人员而设计,可以为内部构建或第三方生态系统合作伙伴构建的移动应用程序、Web 应用程序和服务器应用程序提供安全可靠的后端 API 访问。API 背后的业务逻辑可以由 API Gateway 代理调用的可公开访问的终端节点提供,也可以完全作为一个 Lambda 函数来运行。

劣势

API 网关也存在一些缺点,它是另一个高度可用的组件,需要开发、部署和管理。另外,还有一个风险是 API 网关可能会成为开发瓶颈。开发人员必须更新 API 网关以暴露每个微服务的端点。

重要的是更新 API 网关的过程应尽可能地放缓一些。否则,开发人员将被迫排队等待网关更新。尽管 API 网关存在这些缺点,但对于大多数的真实应用来说,使用 API 是合理的。