View a markdown version of this page

Utilizzo dell'endpoint HTTPS REST per connettersi a un'istanza database Neptune - Amazon Neptune

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 dell'endpoint HTTPS REST per connettersi a un'istanza database Neptune

Amazon Neptune fornisce un endpoint HTTPS per le query Gremlin. L'interfaccia REST è compatibile con qualsiasi versione di Gremlin utilizzata dal cluster database (consulta la pagina di rilascio del motore della versione del motore Neptune che stai utilizzando per determinare quale rilascio di Gremlin supporta).

Nota

Come illustrato in Crittografia delle connessioni al tuo database Amazon Neptune con SSL/HTTPS, Neptune ora richiede la connessione tramite HTTPS anziché HTTP. Inoltre, Neptune attualmente non supporta HTTP/2 per le richieste API REST. I client devono utilizzare HTTP/1.1 per la connessione agli endpoint.

Le istruzioni seguenti mostrano come connettersi a un endpoint di Gremlin utilizzando il comando curl e HTTPS. Segui queste istruzioni da un'istanza Amazon EC2 nello stesso cloud privato virtuale (VPC) dell'istanza database Neptune.

L'endpoint HTTPS per le query Gremlin in un'istanza database Neptune è https://your-neptune-endpoint:port/gremlin.

Nota

Per informazioni su come trovare il nome host dell'istanza database Neptune, consulta Connessione agli endpoint Amazon Neptune.

Per connettersi a Neptune utilizzando l'endpoint HTTP REST

Gli esempi seguenti mostrano come inviare una query Gremlin all'endpoint REST. È possibile utilizzare l' AWS SDK, o. AWS CLIcurl

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

Per ulteriori informazioni, consulta la sezione execute-gremlin-query AWS CLI Command Reference.

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))

Per esempi AWS SDK in altri linguaggi come Java, .NET e altri, consultaAWS 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

Questo esempio presuppone che le tue AWS credenziali siano configurate nel tuo ambiente. Sostituisci us-east-1 con la regione del tuo cluster Neptune.

Per ulteriori informazioni sull'utilizzo awscurl con l'autenticazione IAM, consulta. Utilizzo di awscurl con credenziali temporanee per connettersi in modo sicuro a un cluster database con autenticazione IAM abilitata

curl

L'esempio seguente utilizza curl per inviare una query Gremlin tramite HTTP POST. La query viene inviata in formato JSON nel corpo del post come proprietà gremlin.

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

Sebbene le richieste HTTP POST siano consigliate per l'invio di query Gremlin, è possibile utilizzare anche le richieste HTTP GET:

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

Questi esempi restituiscono il primo vertice del grafico utilizzando l'g.V().limit(1)attraversamento. Per eseguire una query su qualcos'altro, sostituirlo con un altro attraversamento Gremlin.

Importante

Per impostazione predefinita, l'endpoint REST restituisce tutti i risultati in un unico insieme di risultati JSON. Se questo insieme di risultati è troppo grande, può verificarsi un'eccezione OutOfMemoryError sull'istanza database Neptune.

È possibile evitare tale problema abilitando le risposte in blocchi (risultati restituiti in una serie di risposte separate). Per informazioni, consulta Utilizzo di intestazioni HTTP finali opzionali per abilitare le risposte Gremlin in più parti.

Nota

Neptune non supporta la proprietà bindings.