文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您好,Amazon Neptune
下列程式碼範例示範如何開始使用 Neptune。
- Java
-
- SDK for Java 2.x
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 /** * 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()); } }); }
-
如需 API 詳細資訊,請參閱AWS SDK for Java 2.x 《 API 參考》中的 DescribeDBClustersPaginator。
-
- Python
-
- SDK for Python (Boto3)
-
注意
GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫
中設定和執行。 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()
-
如需 API 詳細資訊,請參閱《適用於 AWS Python (Boto3) 的 SDK API 參考》中的 DescribeDBClustersPaginator。
-
基本概念
了解基本概念