Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de Go pour se connecter à une instance de base de données Neptune
Si possible, utilisez toujours la dernière version du client Apache TinkerPop Go Gkremlin, gremlingo
La gremlingo
version à utiliser s'aligne généralement sur les TinkerPop versions décrites dans le tableau du client Java Gkremlin.
Note
Les versions 3.5.x de gremlingo sont rétrocompatibles avec les versions 3.4.x tant que vous n'utilisez que les fonctionnalités TinkerPop 3.4.x dans les requêtes Gkremlin que vous écrivez.
La section suivante vous accompagne dans l'exécution d'un exemple Go qui se connecte à une instance de base de données Amazon Neptune et effectue une traversée Gremlin.
Vous devez suivre ces instructions depuis une EC2 instance Amazon située dans le même cloud privé virtuel (VPC) que votre instance de base de données Neptune.
Avant de commencer, vous devez exécuter les actions suivantes :
Téléchargez et installez Go 1.17 ou version ultérieure depuis le site web go.dev
.
Pour se connecter à Neptune à l'aide de Go
-
À partir d'un répertoire vide, initialisez un nouveau module Go :
go mod init example.com/gremlinExample
-
Ajoutez gremlin-go comme dépendance du nouveau module :
go get github.com/apache/tinkerpop/gremlin-go/v3/driver
-
Créez un fichier nommé
gremlinExample.go
et ouvrez-le dans un éditeur de texte. -
Copiez le texte suivant dans le
gremlinExample.go
fichier, en remplaçant
avec l'adresse de votre instance de base de données Neptune :(votre point de terminaison 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()) } }Note
Le format du TLS certificat Neptune n'est actuellement pas pris en charge sur Go 1.18+ avec macOS et peut générer une erreur 509 lorsque vous essayez d'établir une connexion. Pour les tests locaux, cela peut être ignoré en ajoutant « crypto/tls » aux importations et en modifiant les paramètres
DriverRemoteConnection
comme suit :// 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} })
-
Pour exécuter l'exemple, entrez la commande suivante :
go run gremlinExample.go
La requête Gremlin à la fin de cet exemple renvoie les sommets ((g.V().Limit(2))
) dans une liste. Cette tranche est ensuite itérée et imprimée avec la fonction fmt.Println
standard.
Note
La partie finale de la requête Gremlin, ToList()
, est obligatoire pour soumettre la traversée au serveur à des fins d'évaluation. Si vous n'incluez pas cette méthode ou une autre méthode équivalente, la requête ne sera pas soumise à l'instance de base de données Neptune.
Les méthodes suivantes soumettent la requête à l'instance de base de données Neptune :
ToList()
ToSet()
Next()
GetResultSet()
Iterate()
L'exemple précédent renvoie les deux premier vertex du graphe en utilisant la traversée g.V().Limit(2).ToList()
. Pour interroger quelque chose d'autre, remplacez la traversée par une autre traversée Gremlin avec l'une des méthodes de fin appropriées.