Há mais exemplos do AWS SDK disponíveis no repositório do GitHub Documento de Exemplos do AWS SDK.
Exemplos de código para o Neptune usando AWS SDKs
Os exemplos de código a seguir mostram como usar o Amazon Neptune com um kit de desenvolvimento de software (SDK) da AWS.
As noções básicas são exemplos de código que mostram como realizar as operações essenciais em um serviço.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cenários são exemplos de código que mostram como realizar tarefas específicas chamando várias funções dentro de um serviço ou combinadas com outros Serviços da AWS.
Conceitos básicos
O exemplo de código a seguir mostra como começar a usar o Neptune.
- Java
-
- SDK para Java 2.x
-
/**
* 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 para Python (Boto3).
-
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()