Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di Go per connettersi a un'istanza database Neptune
Se puoi, usa sempre l'ultima versione del client Apache TinkerPop Go Gremlin, gremlingo
La gremlingo
versione da usare in genere si allinea alle TinkerPop versioni descritte nella tabella per il client Java Gremlin.
Nota
Le versioni di gremlingo 3.5.x sono retrocompatibili con le versioni 3.4.x purché si utilizzino solo le TinkerPop funzionalità 3.4.x nelle query Gremlin che si scrivono.
La sezione seguente illustra come eseguire un esempio Go che si connette a un'istanza database Amazon Neptune ed esegue un attraversamento Gremlin.
È necessario seguire queste istruzioni da un'EC2istanza Amazon nello stesso cloud privato virtuale (VPC) dell'istanza DB Neptune.
Prima di iniziare, esegui queste attività:
Scarica e installa Go 1.17 o versioni successive dal sito Web go.dev
.
Per connettersi a Neptune tramite Go
-
Partendo da una directory vuota, inizializza un nuovo modulo Go:
go mod init example.com/gremlinExample
-
Aggiungi gremlin-go come dipendenza del nuovo modulo:
go get github.com/apache/tinkerpop/gremlin-go/v3/driver
-
Crea un file denominato
gremlinExample.go
, quindi aprilo in un editor di testo. -
Copia quanto segue nel
gremlinExample.go
file, sostituendolo
con l'indirizzo della tua istanza DB Neptune:(il tuo endpoint di Neptune)
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()) } }Nota
Il formato del certificato TLS Neptune non è attualmente supportato su Go 1.18+ con macOS e può generare un errore 509 quando si tenta di avviare una connessione. Per i test locali, questo può essere ignorato aggiungendo "crypto/tls" alle importazioni e modificando le impostazioni
DriverRemoteConnection
come segue:// 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} })
-
Immettere il comando seguente per eseguire l'esempio:
go run gremlinExample.go
La query Gremlin alla fine di questo esempio restituisce i vertici (g.V().Limit(2))
in una sezione. Questa sezione viene quindi ripetuta e stampata con la funzione standard fmt.Println
.
Nota
La parte finale della query Gremlin, ToList()
è obbligatoria per inviare l'attraversamento al server per la valutazione. Se non includi quel metodo o un altro metodo equivalente, la query non viene inviata all'istanza database Neptune.
I metodi riportati sotto inviano la query all'istanza database Neptune:
ToList()
ToSet()
Next()
GetResultSet()
Iterate()
L'esempio precedente restituisce i primi due vertici del grafo utilizzando l'attraversamento g.V().Limit(2).ToList()
. Per eseguire query per qualcos'altro, sostituirla con un altro attraversamento Gremlin con uno dei metodi finali appropriati.