教程:使用 API Gateway 私有集成构建 REST API
您可以使用私有集成创建 API Gateway API 向客户提供对您 Amazon Virtual Private Cloud (Amazon VPC) 中 HTTP/HTTPS 资源的访问。此类 VPC 资源是位于 VPC 中网络负载均衡器之后的 EC2 实例上的 HTTP/HTTPS 终端节点。网络负载均衡器封装 VPC 资源并将传入请求路由到目标资源。
客户端调用 API 时,API Gateway 通过预置的 VPC 链接连接到网络负载均衡器。VPC 链接由 VpcLink 的 API Gateway 资源封装。它负责将 API 方法请求转发到 VPC 资源,并将后端响应返回到调用方。对于 API 开发人员,VpcLink
的功能等同于集成终端节点。
要使用私有集成创建 API,您必须创建新的 VpcLink
,或者选择已连接到针对所需 VPC 资源的网络负载均衡器的现有链接。您必须具有合适的权限以创建和管理 VpcLink
。然后,您设置 API 方法并将其集成到 VpcLink
,方法是将 HTTP
或 HTTP_PROXY
设置为集成类型,将 VPC_LINK
设置为集成连接类型,并在集成 VpcLink
上设置 connectionId
标识符。
网络负载均衡器和 API 必须归同一个Amazon账户所有。
为快速开始创建 API 以访问 VPC 资源,我们将引导您完成必需步骤,通过 API Gateway 控制台使用私有集成来构建 API。开始创建 API 之前,请执行以下操作:
-
创建 VPC 资源,在相同区域中您的账户下创建或选择网络负载均衡器,然后添加 EC2 实例,该实例托管了作为网络负载均衡器目标的资源。有关更多信息,请参阅 为 API Gateway 私有集成设置 Network Load Balancer。
-
授予权限,为私有集成创建 VPC 链接。有关更多信息,请参阅 授予创建 VPC 链接的权限。
创建您的 VPC 资源并使用在此目标组中配置的 VPC 资源创建网络负载均衡器之后,按照以下说明创建 API,并在私有集成中通过 VpcLink
将其与 VPC 资源集成。
使用 API Gateway 控制台通过私有集成创建 API
-
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
如果尚未创建 VPC 链接,请创建:
-
从主导航窗格中,选择 VPC links (VPC 链接),然后选择 Create (创建)。
-
选择 VPC link for REST APIs (REST API 的 VPC 链接)。
-
为 VPC 链接输入名称和(可选)说明。
-
从目标 NLB 下拉列表中选择网络负载均衡器。
您必须已经在所选区域中创建了网络负载均衡器,这样列表中才会显示网络负载均衡器的 API。
-
选择创建以开始创建 VPC 链接。
初始响应返回了
VpcLink
资源表示,带有 VPC 链接 ID 以及PENDING
状态。这是因为操作是异步的,需要大约 2-4 分钟才能完成。成功完成时,状态为AVAILABLE
。同时,您可以继续创建 API。 -
-
从主导航窗格中选择 APIs (API),然后选择 Create API (创建 API) 以创建边缘优化或区域终端节点类型的新 API。
-
对于根资源 (/),请从操作下拉菜单中选择 Create Method (创建方法),然后选择
GET
。 -
在 / GET - Setup 窗格中,按以下所示初始化 API 方法集成:
-
为 Integration type (集成类型) 选择
VPC Link
。 -
选择 Use Proxy Integration (使用代理集成)。
-
从方法下拉列表,选择
GET
作为集成方法。 -
从 VPC Link (VPC 链接) 下拉列表中,选择
[Use Stage Variables]
并在下方文本框中键入${stageVariables.vpcLinkId}
。在将 API 部署到阶段之后,我们将定义
vpcLinkId
阶段变量,并将其值设置为在步骤 2 中创建的VpcLink
的 ID。 -
为 Endpoint URL (终端节点 URL) 键入 URL,例如
http://myApi.example.com
。此处,主机名(例如
myApi.example.com
)用于设置集成请求的标头Host
。注意 对于网络负载均衡器 (NLB),请务必使用 NLB DNS 名称,如网络负载均衡器入门中所述。
-
将 Use Default Timeout (使用默认超时) 选择原样保留,除非您希望自定义集成超时。
-
选择保存以完成设置集成。
通过代理集成,已准备好部署 API。否则,您需要继续设置适当的方法响应和集成响应。
-
从操作下拉菜单,选择 Deploy API (部署 API),然后选择新的或现有的阶段以部署到 API。
记下生成的 Invoke URL (调用 URL)。您需要它来调用 API。执行此操作前,您必须设置
vpcLinkId
阶段变量。 -
在 Stage Editor (阶段编辑器) 中,选择 Stage Variables (阶段变量) 选项卡,然后选择 Add Stage Variable (添加阶段变量)。
-
在名称列下,键入
vpcLinkId
。 -
在值列下,键入
VPC_LINK
的 ID,例如gix6s7
。 -
选择对勾图标以保存此阶段变量。
使用阶段变量,您可以通过更改阶段变量值,轻松地切换到 API 的不同 VPC 链接。
这会完成创建 API。您可以测试通过其他集成调用 API。
-
-