View a markdown version of this page

使用 HTTPS REST 端点连接到 Neptune 数据库实例 - Amazon Neptune

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 HTTPS REST 端点连接到 Neptune 数据库实例

Amazon Neptune 为 Gremlin 查询提供 HTTPS 端点。REST 接口与您的数据库集群使用的任何 Gremlin 版本兼容(请参阅您正在运行的 Neptune 引擎版本的引擎版本页面,以确定它支持哪个 Gremlin 版本)。

注意

使用 SSL/HTTPS 加密与 Amazon Neptune 数据库的连接中所述,Neptune 现在要求您使用 HTTPS 而不是 HTTP 进行连接。此外,Neptune 目前不支持 HTTP/2 来处理 REST API 请求。客户端在连接到端点时必须使用 HTTP/1.1。

以下说明将带您演练使用 curl 命令和 HTTPS 连接到 Gremlin 终端节点。必须从与您的 Neptune 数据库实例位于同一虚拟私有云 (VPC) 中的 Amazon EC2 实例中按照这些说明操作。

针对 Neptune 数据库实例的 Gremlin 查询的 HTTPS 端点为 https://your-neptune-endpoint:port/gremlin

注意

有关查找 Neptune 数据库实例的主机名的信息,请参阅连接到 Amazon Neptune 端点

使用 HTTP REST 端点连接到 Neptune

以下示例展示了如何向 REST 端点提交 Gremlin 查询。您可以使用 S AWS DK AWS CLI、或curl

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

有关更多信息,请参阅《 AWS CLI 命令参考》execute-gremlin-query中的。

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

有关其他语言(如 Java、.NET 等)的 AWS SDK 示例,请参阅AWS SDK

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

此示例假设您的 AWS 证书是在您的环境中配置的。us-east-1替换为 Neptune 集群的区域。

有关awscurl与 IAM 身份验证配合使用的更多信息,请参阅将 awscurl 与临时凭证结合使用以安全地连接到启用了 IAM 身份验证的数据库集群

curl

以下示例使用 curl 来通过 HTTP POST 提交 Gremlin 查询。该查询采用 JSON 格式在 POST 请求正文中提交为 gremlin 属性。

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

尽管建议在发送 Gremlin 查询时使用 HTTP POST 请求,但也可以使用 HTTP GET 请求:

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

这些示例使用g.V().limit(1)遍历返回图中的第一个顶点。您可以通过将它替换为另一个 Gremlin 遍历来查询其它内容。

重要

默认情况下,REST 端点在单个 JSON 结果集中返回所有结果。如果此结果集太大,Neptune 数据库实例可能会出现 OutOfMemoryError 异常。

您可以通过启用分块响应(在一系列单独的响应中返回的结果)来避免这种情况。请参阅使用可选的 HTTP 尾随标头启用由多部分组成的 Gremlin 响应

注意

Neptune 不支持 bindings 属性。