Can't figure out how to use Amazon Neptune Graph Database Data APIs

0

Summary

  • AWS released new data plane APIs for the Neptune Graph Database engine, in February 2024.
  • The data plane APIs, such as GetEngineStatus, do not contain any input parameters to specify which Neptune server to connect to.
  • There are no code samples that describe how to specify which Neptune server to use with the new data plane APIs.
  • The Developer Guide for Amazon Neptune does not explain how to specify a Neptune server to use with the data plane APIs.

Question: How do I use the new Neptune Data APIs against a specific Neptune DB server / instance?

I'm planning to use the AWS SDK for Rust, although the same question applies to any of the supported AWS SDKs.

References

profile picture
asked a month ago199 views
1 Answer
0

Thanks for the question. I don't have a Rust example to hand, but here (below) is a simple Python one using the Neptune DB SDK from the boto3 library. The database endpoint is specified when creating the client object. For example:

import boto3
neptune = boto3.client('neptunedata',endpoint_url='https://my-cluster.us-east-1.neptune.amazonaws.com:8182')
neptune.get_engine_status()

In my case I used the main cluster endpoint. Depending on your needs you could also specify the cluster's read-only endpoint, or the endpoint for an individual replica.

Hopefully this helps. I will also see if I can find a Rust example.

AWS
AWS-KRL
answered a month ago
profile picture
EXPERT
reviewed a month ago
  • Gotcha, that should work. I posted it on Reddit as well, and someone responded with a rough Rust example. I was confused because the documentation isn't clear on how to use the data plane APIs. Since most other AWS SDKs (ie. DynamoDB, S3, Timestream, etc.) all work against public endpoints, it would have seemed logical that the Neptune data plane APIs would also work similarly. However, it appears that is not the case, because Neptune cannot be deployed with a publicly routable IPv4 address (contrasted with RDS) and doesn't support any kind of internet-facing proxy feature. So to summarize, in order to use the data plane APIs for Neptune, you still have to spin up a dev EC2 instance, or set up a VPN, with access to the Neptune instance. The docs talk about this in the context of using an external Gremlin or OpenCypher module, but not in the context of the new data plane APIs. Hopefully the Neptune team can improve the linked docs in the question above. 👍

  • Tanks for the detailed feedback Trevor. I will pass it on to the relevant folks.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions