Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I connect to Neptune using Java

I have the following code based on the docs...

@Controller
@RequestMapping("neptune")
public class NeptuneEndpoint {
    @GetMapping("")
    @ResponseBody
    public String test(){
        Cluster.Builder builder = Cluster.build();
        builder.addContactPoint("...endpoint...");
        builder.port(8182);

        Cluster cluster = builder.create();

        GraphTraversalSource g = EmptyGraph.instance()
                                           .traversal()
                                           .withRemote(
                                               DriverRemoteConnection.using(cluster)
                                           );

        GraphTraversal t = g.V().limit(2).valueMap();

        t.forEachRemaining(
                e ->  System.out.println(e)
        );

        cluster.close();
        return "Neptune Up";
    }
}

But when I try to run I get ...

java.util.concurrent.TimeoutException: Timed out while waiting for an available host - check the client configuration and connectivity to the server if this message persists

Also how would I add Secret key from AWS IAM account?

like image 561
Jackie Avatar asked Jul 01 '26 16:07

Jackie


2 Answers

Neptune doesn't allow you to connect to the db instance from your local machine. You can only connect to Neptune via an EC2 inside the same VPC as Neptune (aws documentation).

Try making a runnable jar of this code and run it inside an ec2, the code should work fine. If you're trying to debug something from your local system, then use PuTTY instance tunneling to connect to ec2 which then will be forwarded to neptune cluster.

like image 154
Priyank Agrawal Avatar answered Jul 03 '26 18:07

Priyank Agrawal


Have you created an instance with IAM auth enabled?

If yes, you will have to sign your request using SigV4. More information (and examples) on how to connect using SigV4 is available at https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-connecting-gremlin-java.html

The examples given in the documentation above also contain information on how to use your IAM credentials to connect to a Neptune cluster.

like image 21
Divij Vaidya Avatar answered Jul 03 '26 20:07

Divij Vaidya



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!