c# - AWS:从 lambda 连接到 Neptune
问题描述
我正在尝试从我的 lambda 连接到 Neptune。Lambda 配置包含与我的海王星实例相同的 VPC、子网和安全组。
lambda 的执行角色也有以下策略:AmazonRDSFullAccess、AmazonRDSDirectoryServiceAccess、NeptuneFullAccess 和 AWSLambdaENIManagementAccess。
无论如何我有这个错误:无法连接到远程服务器---> System.Net.Http.HttpRequestException:没有这样的设备或地址--->
我错过了什么?
谢谢
解决方案
这绝对看起来像一个连接问题。管理此类连接的推荐方法是 2 有 2 个安全组:
client
- 您附加到所有客户端的安全组,例如 Lambda、EC2 实例等。默认出站规则使您可以出站访问 VPC 中的每个资源。如果你愿意,你可以收紧它。db
- 应附加到 Neptune 集群的安全组。在此安全组中,编辑入站规则,并显式添加允许入站连接到您的数据库端口(8182 是默认端口)的 TCP 规则。
您可以db
在创建期间或通过修改现有集群将安全组附加到集群。
PS 作为旁注,除非您计划从 lambda 进行管理 API 调用,例如发出请求,否则您的 Lambda 并不真正需要AmazonRDSFullAccess
或角色。这些 IAM 角色与客户端能够与正在运行的数据库集群/实例对话并没有任何关系。NeptuneFullAccess
CreateDBCluster
希望这可以帮助。
推荐阅读
- python - 无法让两个 Python 记录器同时工作
- gnuplot - 点图的 Gnuplot 点间隔
- javascript - 如何在根目录中获取外部文本文件并使用 javascript 将其附加到 p 元素?
- java - 在netbeans中单击运行时Jpanel不显示
- python - Matplotlib:最后 y 刻度标签不可见,边距为 0
- html - 无法弄清楚如何将文本水平对齐到输入的左侧
- sql - CREATE FUNCTION 后面的代码是一个字符串意味着什么?
- javascript - 仅防止未定义的值
- python - 遍历列表和删除元素的最佳方法是什么?我目前的做法会导致元素被跳过
- scala - Spark,拥有大量内存,由于 OOM 无法加入数据帧