Mit Node.js verbinden Sie mit einer Neptune DB-Instanz - 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.

Mit Node.js verbinden Sie mit einer Neptune DB-Instanz

Der folgende Abschnitt führt Sie durch die Ausführung eines Node.js-Beispiels. Es wird eine Verbindung zu einer Amazon Neptune-DB-Instance hergestellt und eine Gremlin-Traversierung durchgeführt.

Befolgen Sie diese Anweisungen aus einer Amazon EC2-Instance heraus, die sich in derselben Virtual Private Cloud (VPC) befindet wie Ihre Neptune DB-Instance.

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

  • Stellen Sie sicher, dass Node.js Version 8.11 oder höher installiert ist. Wenn nicht, laden Sie Node.js von der Nodejs.org-Website herunter und installieren Sie es.

So stellen Sie eine Verbindung zu Neptune mit Node.js her

  1. Geben Sie Folgendes ein, um das gremlin-javascript-Paket zu installieren:

    npm install gremlin
  2. Erstellen Sie eine Datei namens gremlinexample.js und öffnen Sie diese dann in einem Text-Editor.

  3. Kopieren Sie Folgendes in die gremlinexample.js-Datei. Ersetzen your-neptune-endpoint mit der Adresse Ihrer Neptune DB-Instance.

    Informationen zum Ermitteln der Adresse für Ihre Neptune DB-Instance finden Sie im Abschnitt Verbindung mit Amazon Neptune-Endpunkten herstellen.

    const gremlin = require('gremlin'); const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection; const Graph = gremlin.structure.Graph; dc = new DriverRemoteConnection('wss://your-neptune-endpoint:8182/gremlin',{}); const graph = new Graph(); const g = graph.traversal().withRemote(dc); g.V().limit(1).count().next(). then(data => { console.log(data); dc.close(); }).catch(error => { console.log('ERROR', error); dc.close(); });
  4. Geben Sie den folgenden Befehl ein, um das Beispiel auszuführen:

    node gremlinexample.js

Das vorherige Beispiel gibt über die g.V().limit(1).count().next()-Traversierung die Anzahl eines einzelnen Vertex im Diagramm zurück. Um etwas anderes abzufragen, ersetzen Sie diese durch eine andere Gremlin-Traversierung mit einer der entsprechenden Ending-Methoden.

Anmerkung

Der letzte Teil der Gremlin-Abfrage, next(), ist für die Übermittlung der Traversierung zur Auswertung an den Server erforderlich. Wenn Sie diese oder eine ähnliche Methode nicht mit 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()

  • nextTraverser()

  • iterate()

Wichtig

Hierbei handelt es sich um ein eigenständiges Node.js-Beispiel. Wenn Sie diesen Code in einer AWS Lambda-Funktion einsetzen, stellen Sie sicher, dass Sie über den callback- Parameter oder den context-Parameter einen Erfolg oder Misserfolg anzeigen. Andernfalls kann es zu Zeitüberschreitungen kommen.

Weitere Informationen finden Sie unter Verwenden des Callback-Parameters in der AWS Lambda-Dokumentation.

Im Folgenden wird das vorherige Beispiel mit den Änderungen angezeigt, die für das Ausführen als AWS Lambda-Funktion erforderlich sind. Dieses Beispiel erfordert, dass Sie ein Bereitstellungspaket erstellen, das das gremlin-javascript-Paket enthält. Weitere Informationen zum Erstellen eines Lambda-Bereitstellungspakets finden Sie unter Erstellen eines Bereitstellungspakets (Node.js).

const gremlin = require('gremlin'); const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection; const Graph = gremlin.structure.Graph; exports.handler = (event, context, callback) => { dc = new DriverRemoteConnection('wss://your-neptune-endpoint:8182/gremlin',{}); const graph = new Graph(); const g = graph.traversal().withRemote(dc); g.V().limit(1).count().next(). then(data => { console.log(data); dc.close(); context.succeed(results); }).catch(error => { console.log('ERROR', error); dc.close(); context.fail('Traversal failed: ' + err); }); }