View a markdown version of this page

Utilisation du point de terminaison HTTP REST pour se connecter à une instance de base de données Neptune - Amazon Neptune

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 du point de terminaison HTTP REST pour se connecter à une instance de base de données Neptune

Amazon Neptune fournit un point de terminaison HTTP pour les requêtes Gremlin. L'interface REST est compatible avec n'importe quelle version Gremlin de votre cluster de bases de données (consultez la page de mise à jour correspondant à la version de moteur Neptune que vous exécutez pour déterminer la version Gremlin prise en charge).

Note

Comme indiqué dans Chiffrement des connexions à votre base de données Amazon Neptune avec SSL/HTTPS, vous devez désormais vous connecter via HTTPS au lieu de HTTP dans Neptune. En outre, Neptune ne prend actuellement pas en charge le HTTP/2 pour les requêtes d'API REST. Les clients doivent utiliser HTTP/1.1 lorsqu'ils se connectent aux points de terminaison.

Les instructions suivantes vous guident à travers la connexion au point de terminaison Gremlin à l'aide de la commande curl et de HTTPS. Vous devez suivre ces instructions à partir d'une instance Amazon EC2 dans le même cloud privé virtuel (VPC) (VPC) que l'instance de base de données Neptune.

Le point de terminaison HTTPS pour les requêtes Gremlin dans une instance de base de données Neptune est https://your-neptune-endpoint:port/gremlin.

Note

Pour découvrir comment trouver le nom d'hôte de l'instance de base de données Neptune, consultez la section Connexion aux points de terminaison Amazon Neptune.

Pour se connecter à Neptune à l'aide du point de terminaison HTTP REST

Les exemples suivants montrent comment envoyer une requête Gremlin au point de terminaison REST. Vous pouvez utiliser le AWS SDK AWS CLI, le oucurl.

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

Pour plus d'informations, consultez execute-gremlin-queryle manuel de référence des AWS CLI commandes.

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

Pour des exemples de AWS SDK dans d'autres langages tels que Java, .NET, etc., consultezAWS SDK.

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

Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez us-east-1 par la région de votre cluster Neptune.

Pour plus d'informations sur l'utilisation awscurl de l'authentification IAM, consultezUtilisation d'informations d'identification temporaires awscurl pour se connecter en toute sécurité à un cluster de bases de données avec l'authentification IAM activée.

curl

L'exemple suivant utilise curl pour soumettre une requête Gremlin via HTTP POST. La requête est soumise au format JSON dans le corps de la publication en tant que propriété gremlin.

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

Bien que les demandes HTTP POST soient recommandées pour envoyer des requêtes Gremlin, il est également possible d'utiliser des demandes HTTP GET :

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

Ces exemples renvoient le premier sommet du graphe à l'aide de la g.V().limit(1) traversée. Pour interroger autre chose, remplacez cette traversée par une autre traversée Gremlin.

Important

Par défaut, le point de terminaison REST renvoie tous les résultats dans un seul ensemble de résultats JSON. Si cet ensemble de résultats est trop volumineux, une exception OutOfMemoryError peut être générée dans l'instance de base de données Neptune.

Pour éviter cette exception, activez les réponses segmentées (résultats renvoyés sous la forme d'une série de réponses distinctes). Consultez Utilisation d'en-têtes de suivi HTTP facultatifs pour activer les réponses Gremlin en plusieurs parties.

Note

Neptune ne prend pas en charge la propriété bindings.