Code examples for Neptune using AWS SDKs - AWS SDK Code Examples

There are more AWS SDK examples available in the AWS Doc SDK Examples GitHub repo.

Code examples for Neptune using AWS SDKs

The following code examples show you how to use Amazon Neptune with an AWS software development kit (SDK).

Basics are code examples that show you how to perform the essential operations within a service.

Actions are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios.

Scenarios are code examples that show you how to accomplish specific tasks by calling multiple functions within a service or combined with other AWS services.

More resources

Get started

The following code examples show how to get started using Neptune.

Java
SDK for Java 2.x
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

/** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class HelloNeptune { public static void main(String[] args) { NeptuneAsyncClient neptuneClient = NeptuneAsyncClient.create(); describeDbCluster(neptuneClient).join(); // This ensures the async code runs to completion } /** * Describes the Amazon Neptune DB clusters. * * @param neptuneClient the Neptune asynchronous client used to make the request * @return a {@link CompletableFuture} that completes when the operation is finished */ public static CompletableFuture<Void> describeDbCluster(NeptuneAsyncClient neptuneClient) { DescribeDbClustersRequest request = DescribeDbClustersRequest.builder() .maxRecords(20) .build(); SdkPublisher<DescribeDbClustersResponse> paginator = neptuneClient.describeDBClustersPaginator(request); CompletableFuture<Void> future = new CompletableFuture<>(); paginator.subscribe(new Subscriber<DescribeDbClustersResponse>() { private Subscription subscription; @Override public void onSubscribe(Subscription s) { this.subscription = s; s.request(Long.MAX_VALUE); // request all items } @Override public void onNext(DescribeDbClustersResponse response) { response.dbClusters().forEach(cluster -> { System.out.println("Cluster Identifier: " + cluster.dbClusterIdentifier()); System.out.println("Status: " + cluster.status()); }); } @Override public void onError(Throwable t) { future.completeExceptionally(t); } @Override public void onComplete() { future.complete(null); } }); return future.whenComplete((result, throwable) -> { neptuneClient.close(); if (throwable != null) { System.err.println("Error describing DB clusters: " + throwable.getMessage()); } }); }
Python
SDK for Python (Boto3)
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

import boto3 from botocore.exceptions import ClientError def describe_db_clusters(neptune_client): """ Describes the Amazon Neptune DB clusters using a paginator to handle multiple pages. Raises ClientError with 'ResourceNotFoundException' if no clusters are found. """ paginator = neptune_client.get_paginator("describe_db_clusters") clusters_found = False for page in paginator.paginate(): for cluster in page.get("DBClusters", []): clusters_found = True print(f"Cluster Identifier: {cluster['DBClusterIdentifier']}") print(f"Status: {cluster['Status']}") if not clusters_found: raise ClientError( { "Error": { "Code": "ResourceNotFoundException", "Message": "No Neptune DB clusters found." } }, operation_name="DescribeDBClusters" ) def main(): """ Main entry point: creates the Neptune client and calls the describe operation. """ neptune_client = boto3.client("neptune") try: describe_db_clusters(neptune_client) except ClientError as e: error_code = e.response["Error"]["Code"] if error_code == "ResourceNotFoundException": print(f"Resource not found: {e.response['Error']['Message']}") else: print(f"Unexpected ClientError: {e.response['Error']['Message']}") except Exception as e: print(f"Unexpected error: {str(e)}") if __name__ == "__main__": main()