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
demandé il y a 2 mois211 vues
1 réponse
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
répondu il y a 2 mois
profile picture
EXPERT
vérifié il y a 2 mois
  • 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.

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions