首页 > 解决方案 > AWS:从 lambda 连接到 Neptune

问题描述

我正在尝试从我的 lambda 连接到 Neptune。Lambda 配置包含与我的海王星实例相同的 VPC、子网和安全组。

lambda 的执行角色也有以下策略:AmazonRDSFullAccess、AmazonRDSDirectoryServiceAccess、NeptuneFullAccess 和 AWSLambdaENIManagementAccess。

无论如何我有这个错误:无法连接到远程服务器---> System.Net.Http.HttpRequestException:没有这样的设备或地址--->

我错过了什么?

谢谢

标签: c#aws-lambdaamazon-neptune

解决方案


这绝对看起来像一个连接问题。管理此类连接的推荐方法是 2 有 2 个安全组:

  1. client- 您附加到所有客户端的安全组,例如 Lambda、EC2 实例等。默认出站规则使您可以出站访问 VPC 中的每个资源。如果你愿意,你可以收紧它。
  2. db- 应附加到 Neptune 集群的安全组。在此安全组中,编辑入站规则,并显式添加允许入站连接到您的数据库端口(8182 是默认端口)的 TCP 规则。

您可以db在创建期间或通过修改现有集群将安全组附加到集群。

PS 作为旁注,除非您计划从 lambda 进行管理 API 调用,例如发出请求,否则您的 Lambda 并不真正需要AmazonRDSFullAccess或角色。这些 IAM 角色与客户端能够与正在运行的数据库集群/实例对话并没有任何关系。NeptuneFullAccessCreateDBCluster

希望这可以帮助。


推荐阅读