As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar Go para conectar-se a uma instância de banco de dados do Neptune
Importante
Escolher a versão correta do driver Apache TinkerPop Gremlin é fundamental para a compatibilidade com a versão do motor Neptune. Usar uma versão incompatível pode resultar em falhas de conexão ou comportamento inesperado. Para obter informações detalhadas sobre compatibilidade de versões, consulteAcessar o grafo do Neptune com o Gremlin.
A seção a seguir descreve a execução de um exemplo do Go que se conecta a uma instância de banco de dados do Amazon Neptune e executa um percurso do Gremlin.
Você deve seguir estas instruções em uma instância do Amazon EC2 na mesma nuvem privada virtual (VPC) que a instância de banco de dados do Neptune.
Antes de começar, faça o seguinte:
Baixe e instale o Go 1.17 ou posterior no site gov.dev
.
Como conectar-se ao Neptune usando Go
-
A partir de um diretório vazio, inicialize um novo módulo Go:
go mod init example.com/gremlinExample -
Adicione gremlin-go como uma dependência do novo módulo:
go get github.com/apache/tinkerpop/gremlin-go/v3/driver -
Crie um arquivo denominado
gremlinExample.goe abra-o em um editor de texto. -
Copie o seguinte no arquivo
gremlinExample.go, substituindopelo endereço da instância de banco de dados do Neptune:(your neptune endpoint)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
No momento, o formato de certificado TLS do Neptune não é compatível com o Go 1.18+ com macOS e pode gerar um erro 509 ao tentar iniciar uma conexão. Para testes locais, isso pode ser ignorado adicionando “crypto/tls” às importações e modificando as configurações
DriverRemoteConnectionda seguinte forma:// 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} }) -
Insira o seguinte comando para executar o exemplo:
go run gremlinExample.go
A consulta do Gremlin no final deste exemplo exibe os vértices (g.V().Limit(2)) em uma fatia. Essa fatia é então iterada e impressa com a função fmt.Println padrão.
nota
A parte final da consulta do Gremlin, ToList(), é necessária para enviar a travessia ao servidor para avaliação. Se você não incluir esse método ou outro método equivalente, a consulta não será enviada à instância de banco de dados do Neptune.
Os seguintes métodos enviam a consulta à instância de banco de dados do Neptune:
ToList()ToSet()Next()GetResultSet()Iterate()
O exemplo anterior retorna os primeiros dois vértices do gráfico usando a travessia g.V().Limit(2).ToList(). Para consultar outro elemento, substitua-a por outra travessia do Gremlin com um dos métodos de término adequado.