Herstellen einer Verbindung mit einer Neptune-DB-Instance über Go - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Herstellen einer Verbindung mit einer Neptune-DB-Instance über Go

Verwenden Sie nach Möglichkeit immer die neueste Version des Apache TinkerPop Go Gremlin-Clients, gremlingo, die Ihre Engine-Version unterstützt. Neuere Versionen enthalten zahlreiche Fehlerbehebungen, die Stabilität, Leistung und Benutzerfreundlichkeit des Clients verbessern.

Die zu gremlingo verwendende Version entspricht in der Regel den TinkerPop Versionen, die in der Tabelle für den Java-Gremlin-Client beschrieben sind.

Anmerkung

Die Gremlingo 3.5.x-Versionen sind abwärtskompatibel mit den TinkerPop 3.4.x-Versionen, solange Sie in den von Ihnen geschriebenen Gremlin-Abfragen nur 3.4.x-Funktionen verwenden.

Der folgende Abschnitt führt Sie durch die Ausführung eines Go-Beispiels mit Herstellung einer Verbindung zu einer Amazon-Neptune-DB-Instance und Ausführung einer Gremlin-Traversierung.

Sie müssen diese Anweisungen für eine Amazon-EC2-Instance befolgen, die sich in derselben Virtual Private Cloud (VPC) wie Ihre Neptune-DB-Instance befindet.

Bevor Sie beginnen, führen Sie die folgenden Schritte aus:

  • Laden Sie Go 1.17 oder höher von der Website go.dev herunter und installieren Sie diese Version.

Herstellen einer Verbindung mit Neptune über Go
  1. Initalisieren Sie ausgehend von einem leeren Verzeichnis ein neues Go-Modul:

    go mod init example.com/gremlinExample
  2. Fügen Sie gremlin-go als Abhängigkeit Ihres neuen Moduls hinzu:

    go get github.com/apache/tinkerpop/gremlin-go/v3/driver
  3. Erstellen Sie eine Datei namens gremlinExample.go und öffnen Sie diese dann in einem Text-Editor.

  4. Kopieren Sie Folgendes in die Datei gremlinExample.go und ersetzen Sie (your neptune endpoint) durch die Adresse Ihrer Neptune-DB-Instance:

    package main import ( "fmt" gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver" ) func main() { // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://(your neptune endpoint):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()) } }
    Anmerkung

    Das Neptune-TLS-Zertifikatformat wird zurzeit für Go 1.18+ mit macOS nicht unterstützt und kann beim Versuch, eine Verbindung herzustellen, zu einem 509-Fehler führen. Für lokale Tests kann dies durch Hinzufügung von „crypto/tls“ zu den Importen und Änderung der DriverRemoteConnection-Einstellungen wie folgt übersprungen werden:

    // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://your-neptune-endpoint:8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" settings.TlsConfig = &tls.Config{InsecureSkipVerify: true} })
  5. Geben Sie den folgenden Befehl ein, um das Beispiel auszuführen:

    go run gremlinExample.go

Die Gremlin-Abfrage am Ende dieses Beispiels gibt die Eckpunkte (g.V().Limit(2)) in einem Slice zurück. Dieser Slice wird dann iteriert und mit der Standardfunktion fmt.Println gedruckt.

Anmerkung

Der letzte Teil der Gremlin-Abfrage, ToList(), ist für die Übermittlung der Traversierung zur Auswertung an den Server erforderlich. Wenn Sie diese oder eine gleichwertige Methode nicht einschließen, wird die Abfrage nicht an die Neptune-DB-Instance übermittelt.

Die folgenden Methoden senden die Abfrage an die Neptune-DB-Instance:

  • ToList()

  • ToSet()

  • Next()

  • GetResultSet()

  • Iterate()

Das vorherige Beispiel gibt die ersten beiden Knoten im Diagramm über die g.V().Limit(2).ToList()-Traversierung zurück. Um etwas anderes abzufragen, ersetzen Sie diese durch eine andere Gremlin-Traversierung mit einer der entsprechenden Ending-Methoden.