API GW的Websockets和公共子网

0

【以下的问题经过翻译处理】 您好, 我有一个公开可用的API GW Websockets,我在公共子网中的VPC中拥有一个lambda和ec2实例,这些实例具有IGW和正确的路由表。我已经打开了所有安全组,但是当我尝试使用boto3.client('apigatewaymanagementapi')进行post_to_connection时,连接在Lambda中超时,或者当我运行以下EC2中的错误时:

$ aws apigatewaymanagementapi post-to-connection --data 'hello' --connection-id 'OuoMyd3eDoECJpQ=' --region eu-west-1

Could not connect to the endpoint URL: "https://execute-api.eu-west-1.amazonaws.com/@connections/OuoMyd3eDoECJpQ%3D

不确定错在哪里,我尝试将EC2放入带有API GW的NAT网关和VCPE终端点的私有子网中,但没有运气。

编辑: 我发现了aws-cli命令的问题,我实际上必须指定endpoint_url指向API GW的connection_url。这个有效,但出于某种原因,我仍然不能从位于相同VPC和公共子网中的lambda发布任何消息。

1 回答
0

【以下的回答经过翻译处理】 将Lambda函数连接到VPC时,它们不会获得公共IP地址。如果它们需要在VPC外进行通信,则需要将它们放置在私有子网中,并使用VPC终端节点或NAT网关。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则