如何使用VPC链接和VPC端点从私有子网内的Lambda响应API网关Web套接字



我正在从一个在私有子网中有Lambda的架构迁移,与一个有NatGateway的公共子网交谈,该NatGateway由API网关WebSocket触发。现在我删除了Nat网关,并插入了一个带有VPC链路的VPC端点。我在链接中发现:https://d1.awsstatic.com/whitepapers/private-api-best-practices.pdf

我的VPC端点当前有一个策略全部打开,我没有使用Enable Private DNS Name,因为在我的VPC中还有另一个项目与API网关对话。

我的API网关触发了Lambda,但无法响应返回消息。我的lambda超时了。

在我以前的体系结构中,我的返回端点是https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage},现在当我尝试响应时,它不适用于该端点。

我必须更改端点吗?

在我完成此连接的测试之前,我的安全组和NACL是非常开放的。VPC链路和API网关端点配置有Lambda子网和Lambda安全组。

VPC链路或VPC端点是否缺少什么?

编辑:我在ApiGateway中激活了日志,在lambda日志之前,它返回:

{
"requestId": "em-5aGamaDDAdtd=",
"ip": "",
"caller": "-",
"user": "-",
"requestTime": "30/Apr/2021:17:57:42 +0000",
"eventType": "MESSAGE",
"routeKey": "lambda",
"status": "504",
"connectionId": "em-5abCDaaDBJtw="
}

客户端收到消息:

{
message: "Endpoint request timed out", connectionId: "enBZ-dFG2oAFDA4a=",…}
connectionId: "em-5abCDaaDBJtw="
message: "Endpoint request timed out"
requestId: "em-5aGamaDDAdtd="

我发现我的问题,我的VPC链接缺少与API网关的连接。在AWS::ApiGatewayV2::Integration中,我需要插入VPC链路的连接。

最新更新