我目前正在尝试通过 go 建立与 aws neptune 的连接,但它不起作用。我能够连接到 aws 本身,但是当我尝试连接到 neptune db 时,它显示“无法建立成功的连接:拨打 tcp 172.31.4.48:8182: i/o 超时”。我正在使用 gremlingo 模块,如这段代码
package main import ( "fmt" "net/http" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/neptune" "github.com/gin-gonic/gin" gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver" ) func main() { sess, err := session.NewSession(&aws.Config{ Region: aws.String("us-east-id1"), Credentials: credentials.NewStaticCredentials("AWS-id key", "aws secret id key", ""), }) if err != nil { fmt.Println("Couldn't create new session") return } neptune.New(sess) driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://database-1-instance-1.asdasdasd.us-east-1.neptune.amazonaws.com:8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" }) if err != nil { fmt.Println(err) return } //Cleanup defer driverRemoteConnection.Close() //Creating graph traversal g := gremlingo.Traversal_().WithRemote(driverRemoteConnection) // Perform traversal results, err := g.V().Limit(2).ToList() if err != nil { fmt.Println(err) return } // print results for _, r := range results { fmt.Println(r.GetString()) } }
我不太确定问题是什么,所以我尝试连接到集群本身,但由于它不起作用,我尝试连接到 writer。 非常感谢您的帮助。
致以诚挚的问候
Amazon Neptune 在 VPC 内部运行,并且不公开公共终端节点。设计用于发送查询的代码必须有权访问该 VPC。这可能就像在同一 VPC 中的 EC2 实例上运行的代码一样简单,但还有许多其他方式可以授予对 VPC 的访问权限,例如负载均衡器、VPC 对等互连、直接连接等等。 p>
检查代码是否可以访问数据库的一个简单方法是从同一源点向 /status
API 发送 HTTP 请求,看看它是否有效。
以上是使用 Golang GremlinGo 连接到 AWS Neptune的详细内容。更多信息请关注PHP中文网其他相关文章!