Amazon web services 我的lambda和EC2在VPC中,我无法从lambda将记录转换为kinesis,但我可以从EC2转换

Amazon web services 我的lambda和EC2在VPC中,我无法从lambda将记录转换为kinesis,但我可以从EC2转换,amazon-web-services,amazon-ec2,amazon-kinesis,Amazon Web Services,Amazon Ec2,Amazon Kinesis,我在aws中有一个设置,EC2->kinesis\u x->lambda->kinesis\u x (动觉_x:说明这是同一个动觉流) EC2和lambda在同一个VPC中。 我可以从lambda发布到kinesis_x 我已经配置了一个VPC端点,这就成功了,但是它禁用了EC2发布到kinesis。 EC2和lambda的安全组相同 启用端点后,这是我的EC2中java应用程序的超时异常: 原因:org.apache.http.conn.ConnectTimeoutException:Conn

我在aws中有一个设置,EC2->kinesis\u x->lambda->kinesis\u x (动觉_x:说明这是同一个动觉流) EC2和lambda在同一个VPC中。 我可以从lambda发布到kinesis_x

我已经配置了一个VPC端点,这就成功了,但是它禁用了EC2发布到kinesis。 EC2和lambda的安全组相同

启用端点后,这是我的EC2中java应用程序的超时异常:

原因:org.apache.http.conn.ConnectTimeoutException:Connect to kinesis.us-west-1.amazonaws.com:443[kinesis.us-west-1.amazonaws.com/10.1.1.180,kinesis.us-west-1.amazonaws.com/10.1.2.157]失败:连接超时 位于org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:150) 位于org.apache.http.impl.conn.poolghttpclientconnectionmanager.connect(poolghttpclientconnectionmanager.java:353) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 在com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76)


我希望能够从EC2和Lambda发布到相同的kinesis流,查看客户端无法连接的错误,以便检查要检查的内容:

  • 专有网络是公共的还是私有的
  • 您正在使用多个子网吗
  • 如果是私有的,它是否有internet网关
  • 设置了哪些路线
所有基本的IP网络规则都适用于专有网络

telnet也是你的朋友。一个好的技巧是将SSH/SSM连接到EC2实例中,并尝试使用telnet进行连接

telnet ip port
这使您可以将网络连接与应用程序级问题隔离开来。

问题已解决! 我们将我们的安全组连接到端点,这就成功了!
此sg与我们的EC2和Lambda功能相同。

感谢您的快速回复!私有专有网络。是的,多个子网。是的,我可以从我的专有网络访问互联网。我有两条路线:本地和igw,以便完全访问。启用VPC端点后,我无法远程登录kinesis IP。应用程序完全可以发布到kinesis,而不需要端点,因此这不是应用程序级错误。