Ich versuche gerade, über go eine Verbindung zu aws neptune herzustellen, aber es funktioniert nicht. Ich kann eine Verbindung zu aws selbst herstellen, aber wenn ich versuche, eine Verbindung zu neptune db herzustellen, erscheint die Meldung „Verbindung konnte nicht erfolgreich hergestellt werden: TCP 172.31.4.48:8182 aufrufen: E/A-Zeitüberschreitung“. Ich verwende ein Gremlingo-Modul wie diesen Code
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()) } }
Ich war mir nicht ganz sicher, was das Problem war, also habe ich versucht, eine Verbindung zum Cluster selbst herzustellen, aber da es nicht funktionierte, habe ich versucht, eine Verbindung zum Autor herzustellen. Ich danke Ihnen für Ihre Hilfe.
Beste Grüße
Amazon Neptune läuft in einer VPC und stellt keine öffentlichen Endpunkte zur Verfügung. Code zum Senden von Abfragen muss Zugriff auf die VPC haben. Dies kann so einfach sein wie die Ausführung von Code auf einer EC2-Instanz in derselben VPC, es gibt jedoch viele andere Möglichkeiten, Zugriff auf eine VPC zu gewähren, z. B. Load Balancer, VPC-Peering, direkte Verbindungen und mehr. p>
Eine einfache Möglichkeit zu überprüfen, ob Ihr Code auf die Datenbank zugreifen kann, besteht darin, vom selben Ursprungspunkt aus eine HTTP-Anfrage an die /status
API zu senden und zu prüfen, ob es funktioniert.
Das obige ist der detaillierte Inhalt vonStellen Sie über Golang GremlinGo eine Verbindung zu AWS Neptune her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!