

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden des SDK zum Ausführen von OpenCypher-Abfragen AWS
<a name="access-graph-opencypher-sdk"></a>

Mit dem AWS SDK können Sie OpenCypher-Abfragen für Ihr Neptune-Diagramm mit einer Programmiersprache Ihrer Wahl ausführen. Das Neptune Data API SDK (Dienstname`neptunedata`) bietet die [ExecuteOpenCypherQuery](https://docs.aws.amazon.com/neptune/latest/data-api/API_ExecuteOpenCypherQuery.html)Aktion zum Senden von OpenCypher-Abfragen.

Sie müssen diese Beispiele von einer Amazon EC2 EC2-Instance in derselben Virtual Private Cloud (VPC) wie Ihr Neptune-DB-Cluster oder von einem Standort aus ausführen, der über eine Netzwerkverbindung zu Ihrem Cluster-Endpunkt verfügt.

Direkte Links zur API-Referenzdokumentation für den `neptunedata` Service in jeder SDK-Sprache finden Sie unten:


| Programmiersprache | Neptunedata API-Referenz | 
| --- | --- | 
| C\$1\$1 | [https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-neptunedata/html/annotated.html](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-neptunedata/html/annotated.html) | 
| Go | [https://docs.aws.amazon.com/sdk-for-go/api/service/neptunedata/](https://docs.aws.amazon.com/sdk-for-go/api/service/neptunedata/) | 
| Java | [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/neptunedata/package-summary.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/neptunedata/package-summary.html) | 
| JavaScript | [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-neptunedata/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-neptunedata/) | 
| Kotlin | [https://sdk.amazonaws.com/kotlin/api/latest/neptunedata/index.html](https://sdk.amazonaws.com/kotlin/api/latest/neptunedata/index.html) | 
| .NET | [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Neptunedata/NNeptunedata.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Neptunedata/NNeptunedata.html) | 
| PHP | [https://docs.aws.amazon.com/aws-sdk-php/v3/api/namespace-Aws.Neptunedata.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/namespace-Aws.Neptunedata.html) | 
| Python | [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/neptunedata.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/neptunedata.html) | 
| Ruby | [https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Neptunedata.html](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Neptunedata.html) | 
| Rust | [https://crates.io/crates/aws-sdk-neptunedata](https://crates.io/crates/aws-sdk-neptunedata) | 
| CLI | [https://docs.aws.amazon.com/cli/latest/reference/neptunedata/](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/) | 

## OpenCypher SDK-Beispiele AWS
<a name="access-graph-opencypher-sdk-examples"></a>

Die folgenden Beispiele zeigen, wie Sie einen `neptunedata` Client einrichten, eine OpenCypher-Abfrage ausführen und die Ergebnisse ausdrucken. Ersetzen Sie *YOUR\$1NEPTUNE\$1HOST* und *YOUR\$1NEPTUNE\$1PORT* durch den Endpunkt und Port Ihres Neptune-DB-Clusters.

**Clientseitiges Timeout und Konfiguration erneut versuchen**  
Das SDK-Client-Timeout steuert, wie lange der *Client* auf eine Antwort wartet. Es steuert nicht, wie lange die Abfrage auf dem Server ausgeführt wird. Wenn der Client das Timeout überschreitet, bevor der Server fertig ist, wird die Abfrage möglicherweise weiterhin auf Neptune ausgeführt, während der Client keine Möglichkeit hat, die Ergebnisse abzurufen.  
Wir empfehlen, das clientseitige Lese-Timeout auf `0` (kein Timeout) oder auf einen Wert zu setzen, der mindestens ein paar Sekunden länger ist als die serverseitige [neptune\$1query\$1timeout-Einstellung auf Ihrem Neptune-DB-Cluster](parameters.md#parameters-db-cluster-parameters-neptune_query_timeout). Auf diese Weise kann Neptune kontrollieren, wann das Timeout bei Abfragen abläuft.  
Wir empfehlen außerdem, die maximale Anzahl an Wiederholungsversuchen auf `1` (keine Wiederholungsversuche) festzulegen. Wenn das SDK eine Abfrage wiederholt, die noch auf dem Server ausgeführt wird, kann dies zu doppelten Vorgängen führen. Dies ist besonders wichtig bei Mutationsabfragen, bei denen ein erneuter Versuch zu unbeabsichtigten doppelten Schreibvorgängen führen kann.

------
#### [ Python ]

1. Folgen Sie den [Installationsanweisungen, um Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) zu installieren.

1. Erstellen Sie eine Datei mit dem Namen `openCypherExample.py` und fügen Sie den folgenden Code ein:

   ```
   import boto3
   import json
   from botocore.config import Config
   
   # Disable the client-side read timeout and retries so that
   # Neptune's server-side neptune_query_timeout controls query duration.
   client = boto3.client(
       'neptunedata',
       endpoint_url=f'https://YOUR_NEPTUNE_HOST:YOUR_NEPTUNE_PORT',
       config=Config(read_timeout=None, retries={'total_max_attempts': 1})
   )
   
   response = client.execute_open_cypher_query(
       openCypherQuery='MATCH (n) RETURN n LIMIT 1'
   )
   
   print(json.dumps(response['results'], indent=2))
   ```

1. Führen Sie das Beispiel aus: `python openCypherExample.py`

------
#### [ Java ]

1. Folgen Sie den [Installationsanweisungen](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/setup.html), um das AWS SDK for Java einzurichten.

1. Verwenden Sie den folgenden Code`NeptunedataClient`, um eine OpenCypher-Abfrage einzurichten, auszuführen und das Ergebnis auszudrucken:

   ```
   import java.net.URI;
   import java.time.Duration;
   import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
   import software.amazon.awssdk.core.retry.RetryPolicy;
   import software.amazon.awssdk.services.neptunedata.NeptunedataClient;
   import software.amazon.awssdk.services.neptunedata.model.ExecuteOpenCypherQueryRequest;
   import software.amazon.awssdk.services.neptunedata.model.ExecuteOpenCypherQueryResponse;
   
   // Disable the client-side timeout and retries so that
   // Neptune's server-side neptune_query_timeout controls query duration.
   NeptunedataClient client = NeptunedataClient.builder()
       .endpointOverride(URI.create("https://YOUR_NEPTUNE_HOST:YOUR_NEPTUNE_PORT"))
       .overrideConfiguration(ClientOverrideConfiguration.builder()
           .apiCallTimeout(Duration.ZERO)
           .retryPolicy(RetryPolicy.none())
           .build())
       .build();
   
   ExecuteOpenCypherQueryRequest request = ExecuteOpenCypherQueryRequest.builder()
       .openCypherQuery("MATCH (n) RETURN n LIMIT 1")
       .build();
   
   ExecuteOpenCypherQueryResponse response = client.executeOpenCypherQuery(request);
   
   System.out.println(response.results().toString());
   ```

------
#### [ JavaScript ]

1. Folgen Sie den [Installationsanweisungen](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/getting-started-nodejs.html), um das SDK für einzurichten. AWS JavaScript Installieren Sie das Neptunedata-Client-Paket:. `npm install @aws-sdk/client-neptunedata`

1. Erstellen Sie eine Datei mit dem Namen `openCypherExample.js` und fügen Sie den folgenden Code ein:

   ```
   import { NeptunedataClient, ExecuteOpenCypherQueryCommand } from "@aws-sdk/client-neptunedata";
   import { NodeHttpHandler } from "@smithy/node-http-handler";
   
   const config = {
       endpoint: "https://YOUR_NEPTUNE_HOST:YOUR_NEPTUNE_PORT",
       // Disable the client-side request timeout so that
       // Neptune's server-side neptune_query_timeout controls query duration.
       requestHandler: new NodeHttpHandler({
           requestTimeout: 0
       }),
       maxAttempts: 1
   };
   
   const client = new NeptunedataClient(config);
   
   const input = {
       openCypherQuery: "MATCH (n) RETURN n LIMIT 1"
   };
   
   const command = new ExecuteOpenCypherQueryCommand(input);
   const response = await client.send(command);
   
   console.log(JSON.stringify(response, null, 2));
   ```

1. Führen Sie das Beispiel aus: `node openCypherExample.js`

------