因此,我有一个非常混乱的问题,我不知道如何解决。我的设置是-> Lambda -> IoT Core。我设置了代码,它在我的IDE中运行得很好。我把它部署到AWS,我与AWS的连接超时了。
Lambda位于一个子网中,子网有到IGW的默认路由。我做了一个测试,Lambda函数可以将我的IoT端点的IP解析成一个公共IP (54.x.x.x)。但是connect()方法超时了。我的Lambda函数的安全组被设置为允许所有传入/传出。
我遗漏了什么?为什么我不能从带有IGW配置的VPC内部访问IoT核心,并且似乎正在工作。任何方向都将不胜感激。
更新
在玩了很多不同的东西之后,我无法确定到底是什么弄乱了我的配置。但是在被接受的答案之后,我得到了下面的设置,这个设置似乎适合我所需要的东西。
route=nat-gateway
subnet-5中的
我不知道这是不是我想要的,但这就是我要找的。一系列无法公开访问的子网,但具有访问其他AWS服务的internet连接。因此,我的Lambda资源,ECS等可以私下坐下来,访问他们需要的东西。
谢谢大家提供的信息。
发布于 2020-03-25 01:24:22
不应该将Lambda函数部署到公共子网(这是带有到IGW的默认路由的子网)。它不会像你希望的那样起作用。Lambda功能没有,也不可能有公共IP,因此不能通过IGW路由到互联网。
如果Lambda需要在VPC中,那么将其移动到私有子网,并确保私有子网在公共子网中具有到NAT (或NAT网关)的默认路由。或者将Lambda功能完全部署在VPC之外,如果这是可行的话。
有关详细信息,请访问:
发布于 2020-03-25 01:02:24
当您说“我做了一个测试,而Lambda函数可以将我的IoT端点的IP解析成一个公共IP (54.x.x.x)”,您是指DNS解析,还是使用实际的网络流量检查了这个问题。
在这两种情况下,您都可以为您的VPC打开VPC流日志,然后再试一次。流日志将识别SGs或NACL是否阻塞了您的流量。
还请记住,Lambda不能存在于公共子网中,它们必须驻留在私有子网中,并在公共子网上使用NAT GW连接到internet。
https://stackoverflow.com/questions/60840149
复制相似问题