

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# HTTPS REST エンドポイントを使用して Neptune DB インスタンスに接続する
<a name="access-graph-gremlin-rest"></a>

Amazon Neptune では、Gremlin クエリ用の HTTPS エンドポイントが用意されています。REST インターフェイスは、DB クラスターが使用している Gremlin バージョンすべてと互換性があります (サポートしている Gremlin リリースを特定するには、実行中の Neptune エンジンバージョンの[エンジンリリースページ](engine-releases.md)を参照してください)。

**注記**  
[SSL/HTTPS を使用した Amazon Neptune データベースへの接続の暗号化](security-ssl.md) で説明したように、現在 Neptune では、HTTP ではなく HTTPS を使用して接続する必要があります。さらに、Neptune は現在 REST API リクエストの HTTP/2 をサポートしていません。クライアントは、エンドポイントに接続するときに HTTP/1.1 を使用する必要があります。

次の手順は、`curl` コマンドおよび HTTPS を使用して Gremlin エンドポイントに接続する方法について説明します。Neptune DB インスタンスと同じ仮想プライベートクラウド (VPC) の Amazon EC2 インスタンスからこれらの手順を実行してください。

Neptune DB インスタンスへの Gremlin クエリ用の HTTPS エンドポイントは `https://{{your-neptune-endpoint}}:{{port}}/gremlin` です。

**注記**  
Neptune DB インスタンスのホスト名を見つける方法については、[Amazon Neptune エンドポイントに接続する](feature-overview-endpoints.md) を参照してください。

## HTTP REST エンドポイントを使用して Neptune に接続するには
<a name="access-graph-gremlin-rest-connect"></a>

次の例は、REST エンドポイントに Gremlin クエリを送信する方法を示しています。 AWS SDK、、 AWS CLIまたは を使用できます**curl**。

------
#### [ AWS CLI ]

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

詳細については、 コマンドリファレンスの [execute-gremlin-query](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/execute-gremlin-query.html) AWS CLI を参照してください。

------
#### [ 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](access-graph-gremlin-sdk.md)。

------
#### [ 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 クラスターのリージョンに置き換えます。

IAM 認証**awscurl**で を使用する方法の詳細については、「」を参照してください[一時的な認証情報で `awscurl` を使用して、IAM 認証が有効になっている DB クラスターに安全に接続する](iam-auth-connect-command-line.md#iam-auth-connect-awscurl)。

------
#### [ curl ]

次の例では、**curl** を使用して、HTTP **POST** を通じて Gremlin クエリを送信します。クエリは、投稿の本文にある JSON 形式で `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 DB インスタンスで`OutOfMemoryError` 例外が発生する可能性があります。  
これを回避するには、チャンク化応答 (結果は一連の個別の応答で返される) を有効にします。[オプションの HTTP 末尾ヘッダーを使用して、複数パートの Gremlin 応答を有効にする](access-graph-gremlin-rest-trailing-headers.md)を参照してください。

**注記**  
Neptune は、`bindings` プロパティをサポートしていません。