当前位置: 首页 > 知识库问答 >
问题:

AWS:我可以在VPC内部提供一个Lambda函数访问公共Websockets API网关吗?

冯沛
2023-03-14

我在使用Websockets协议的API网关中有一个公共API。我将其连接ID存储在VPC内部的数据存储中,并尝试编写Lambda以读取这些连接ID,然后向其中的每一个发送数据-使用Await APIGWManagementAPI.PostToConnection({connectionId:connectionId,data:postData}).promise();。这会超时-Lambda无法将消息发送到API网关。所以我尝试添加一个网关到execute-api:AWS ec2 create-vpc-endpoint--vpc-idvpc-xyz--vpc-endpoint-type interface-service-name com.amazonaws.eu-west-1.execute-api--subnet-idsubnet-xyz--security-group-id sg-xyz。现在,我得到了通过调用APIGWManagementAPI引发的ForbiddenException:Pribend

我试着查看了execute-api网关的文档,但是接口的文档https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html指向https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html并导致创建私有API--我不希望这样,我需要我的API是公共的。

我想我可能可以使用资源策略,通常是https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies-examples.html,但这是一个websocket API,因此这些说明不起作用,因为它们没有资源策略选项。

共有1个答案

戴嘉珍
2023-03-14

我在AWS Slack上询问了这个问题,它不可能使用资源策略,并且会增加很多网络复杂性:https://awsdevelopers.Slack.com/archives/c6ldw0bc3/p1570618074008500

从该线程中的AWS开发程序:

嘿-当Lambda启用VPC时,它将服从VPC和子网的所有路由规则。

资源策略将不起作用。

 类似资料:
  • 我需要从endpoint获取一些数据,然后根据响应将这些数据存储到数据库中。

  • 在过去的几个小时里,我一直在调试、配置和命名它,我似乎不明白为什么会发生这种情况。 我正在尝试调用一个 lambda 函数,该函数只是从 ec2 中检索基本信息。当我在aws控制台中测试此lambda函数时,它似乎工作正常。但是,使用以下代码在另一个lambda中调用它; 它只是超时了。没有任何反应…两个Lambda都连接到VPC和所有子网 我认为是我的新VPC导致了这个问题。我的VPC包括: 1

  • 问题内容: 我有2个Lambda函数-一个产生报价,另一个将报价变成订单。我希望Order lambda函数调用Quote函数来重新生成报价,而不是仅仅从不受信任的客户端接收报价。 我看过我能想到的任何地方-但看不到如何链接或调用函数…肯定存在! 问题答案: 我找到了使用的方法。 您可以在以下位置找到该文档:http : //docs.aws.amazon.com/AWSJavaScriptSDK

  • 我需要从AWS SES获取消息,并将其发布到AWS MSK(Kafka)主题。这可能吗?我目前的理解是,所有MSK客户端必须生活在同一个VPC中。如何适当地配置Lambda函数?

  • 我在AWS中有一个公共子网,我在其中有3个实例。。。 WebApp01 (例如弹性 IP - 54.23.61.239) WebApp02 (私有 IP - 192.168.0.24) 虚拟应用程序03 (私有 IP - 192.168.0.25) 我的路由表设置为192.168.0.0/16 - 我可以看到拥有公共IP的实例可以访问互联网,但没有公共IP的实例无法访问互联网。 如何让Intern