AWS-从公共API网关路由到VPC中的lambda

时间:2020-03-14 00:58:04

标签: amazon-web-services aws-lambda aws-api-gateway

问题

从面向公众的AWS网络中的API网关到VPC子网中的Lambda函数(流量在哪里通过?)

Introducing Amazon API Gateway Private Endpoints

通过此次发布,您可以构建不需要公开端点的基于API的服务。他们仍然可以与VPC内部的私有服务(例如数据库)进行交互。 enter image description here

背景

当lambda不在VPC中(在AWS面向公众的网络中)时,流量将通过Internet传输。但是不确定lambda何时在VPC中。

我从AWS控制台在VPC中创建了一个lambda函数,并确认API网关(在VPC中为NOT)可以进入VPC中的lambda。

由于lambda位于VPC的子网中,因此它没有公共IP,因此它不应通过Internet。但是,没有API Gateway Private Integration中所述的VPC专用链接可用于从API网关连接到VPC中的NLB。

因此,我不知道流量在哪里。

enter image description here

Terraform

Terraform aws_api_gateway_integration资源, connection_type 说:

(可选)集成输入的connectionType。有效值为 INTERNET(用于通过公用可路由Internet的连接的默认设置)和VPC_LINK(用于API Gateway和VPC中的网络负载平衡器之间的专用连接)。

因此,看起来它可能会通过Internet,因为connection_type的默认值为INTERNET,并且VPC_LINK当前用于与NLB的API网关私有集成。

watch

1 个答案:

答案 0 :(得分:0)

@Marcin回答说,它通过AWS内部网络。

我目前对API网关集成的了解(如果有误,请纠正我)。

希望其他人不必花同样的努力就能弄清楚他们。

enter image description here

更新

根据How API Gateway talk to Firehose VPC endpoint,当前的理解是与AWS服务的API网关对话,这些服务不在VPC中,而是在AWS网络内部,而不是通过Internet。

enter image description here enter image description here