

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將自訂 ID 注入至 Neptune Gremlin 或 SPARQL 查詢
<a name="features-query-id"></a>

根據預設，Neptune 會將唯一 `queryId` 值指派給每個查詢。您可以使用此 ID 來取得執行中查詢的相關資訊 (請參閱[Gremlin 查詢狀態 API](gremlin-api-status.md) 或 [SPARQL 查詢狀態 API](sparql-api-status.md))，或取消它 (請參閱[Gremlin 查詢取消](gremlin-api-status-cancel.md)或[SPARQL 查詢取消](sparql-api-status-cancel.md))。

Neptune 也可讓您在 HTTP 標頭中，或使用 `queryId` 查詢提示為 SPARQL 查詢指定自己的 `queryId` 值，以用於 Gremlin 或 SPARQL 查詢。指派您自己的 `queryID` 可讓您輕鬆追蹤查詢，以取得狀態或取消該查詢。

## 使用 HTTP 標頭來注入自訂 `queryId` 值
<a name="features-query-id-header"></a>

對於 Gremlin 和 SPARQL 二者，HTTP 標頭可用來將您自己的 `queryId` 值注入至查詢。

**Gremlin 範例**

```
curl -XPOST https://your-neptune-endpoint:port \
    -d "{\"gremlin\": \
        \"g.V().limit(1).count()\" , \
        \"queryId\":\"4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47\"  }"
```

**SPARQL 範例**

```
curl https://your-neptune-endpoint:port/sparql \
    -d "query=SELECT * WHERE { ?s ?p ?o } " \
       --data-urlencode \
       "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47"
```

## 使用 SPARQL 查詢提示來注入自訂 `queryId` 值
<a name="features-query-id-hint"></a>

以下範例說明如何使用 SPARQL `queryId` 查詢提示，將自訂 `queryId` 值注入至 SPARQL 查詢：

```
curl https://your-neptune-endpoint:port/sparql \
    -d "query=PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> \
       SELECT * WHERE { hint:Query hint:queryId \"4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47\" \
       {?s ?p ?o}}"
```

## 使用 `queryId` 值檢查查詢狀態
<a name="features-query-id-check-status"></a>

**Gremlin 範例**

```
curl https://your-neptune-endpoint:port/gremlin/status \
    -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47"
```

**SPARQL 範例**

```
curl https://your-neptune-endpoint:port/sparql/status \
    -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47"
```