View a markdown version of this page

Usar o endpoint REST HTTP para conectar-se a uma instância de banco de dados do Neptune - Amazon Neptune

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 o endpoint REST HTTP para conectar-se a uma instância de banco de dados do Neptune

O Amazon Neptune fornece um endpoint HTTP para consultas do Gremlin. A interface REST é compatível com qualquer versão do Gremlin que o cluster de banco de dados esteja usando (consulte a página de versão do mecanismo da versão do mecanismo do Neptune que você está executando para determinar qual versão do Gremlin é compatível).

nota

Conforme abordado em Criptografas conexões com seu banco de dados do Amazon Neptune com SSL/HTTPS, o Neptune agora exige que você se conecte usando HTTPS em vez de HTTP. Além disso, o Neptune atualmente não oferece suporte a HTTP/2 para solicitações da API REST. Os clientes devem usar HTTP/1.1 ao se conectar aos endpoints.

As instruções a seguir explicam como conectar-se ao endpoint do Gremlin usando o comando curl e HTTPS. 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.

O endpoint HTTP para consultas do Gremlin para uma instância de banco de dados do Neptune é https://your-neptune-endpoint:port/gremlin.

nota

Para obter informações sobre como localizar o nome do host da instância de banco de dados do Neptune, consulte Conectar-se a endpoints do Amazon Neptune.

Como conectar-se ao Neptune usando o endpoint REST HTTP

Os exemplos a seguir mostram como enviar uma consulta Gremlin para o endpoint REST. Você pode usar o AWS SDK AWS CLI, o oucurl.

AWS CLI
aws neptunedata execute-gremlin-query \ --endpoint-url https://your-neptune-endpoint:port \ --gremlin-query "g.V().limit(1)"

Para obter mais informações, consulte execute-gremlin-queryna Referência de AWS CLI Comandos.

SDK
import boto3 import json from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.execute_gremlin_query( gremlinQuery='g.V().limit(1)', serializer='application/vnd.gremlin-v3.0+json;types=false' ) print(json.dumps(response['result'], indent=2))

Para exemplos de AWS SDK em outras linguagens, como Java, .NET e muito mais, consulteAWS SDK.

awscurl
awscurl https://your-neptune-endpoint:port/gremlin \ --region us-east-1 \ --service neptune-db \ -X POST \ -d '{"gremlin":"g.V().limit(1)"}'
nota

Este exemplo pressupõe que suas AWS credenciais estejam configuradas em seu ambiente. us-east-1Substitua pela região do seu cluster Neptune.

Para obter mais informações sobre como usar awscurl com a autenticação do IAM, consulteUsar awscurl com credenciais temporárias para se conectar com segurança a um cluster de banco de dados com a autenticação do IAM habilitada.

curl

O exemplo a seguir usa o curl para enviar uma consulta do Gremlin por meio de HTTP POST. A consulta é enviada no formato JSON no corpo da postagem como a propriedade gremlin.

curl -X POST -d '{"gremlin":"g.V().limit(1)"}' https://your-neptune-endpoint:port/gremlin

Embora as solicitações HTTP POST sejam recomendadas para enviar consultas do Gremlin, também é possível usar solicitações HTTP GET:

curl -G "https://your-neptune-endpoint:port?gremlin=g.V().count()"

Esses exemplos retornam o primeiro vértice no gráfico usando a g.V().limit(1) travessia. É possível consultar outro elemento substituindo-o por outro percurso do Gremlin.

Importante

Por padrão, o endpoint REST exibe todos os resultados em um único conjunto de resultados JSON. Se esse conjunto de resultados for grande demais, uma exceção OutOfMemoryError poderá ocorrer na instância de banco de dados do Neptune.

É possível evitar isso habilitando respostas fragmentadas (resultados gerados em uma série de respostas separadas). Consulte Usar cabeçalhos finais HTTP opcionais para habilitar respostas do Gremlin em várias partes.

nota

O Neptune não é compatível com a propriedade bindings.