Interface Ec2MetadataAsyncClient

All Superinterfaces:
AutoCloseable, SdkAutoCloseable
All Known Implementing Classes:
DefaultEc2MetadataAsyncClient

@ThreadSafe @Immutable public interface Ec2MetadataAsyncClient extends SdkAutoCloseable
Interface to represent the Ec2Metadata Client Class. Used to access instance metadata from a running EC2 instance.

Instantiate the Ec2MetadataAsyncClient

Default configuration

Ec2MetadataAsyncClient client = Ec2MetadataAsyncClient.create();

Custom configuration

Example of a client configured for using IPV6 and a fixed delay for retry attempts :
Ec2MetadataAsyncClient client = Ec2MetadataAsyncClient.builder()
    .retryPolicy(p -> p.backoffStrategy(FixedDelayBackoffStrategy.create(Duration.ofMillis(500))))
    .endpointMode(EndpointMode.IPV6)
    .build();

Use the client

Call the get method on the client with a path to an instance metadata:
 Ec2MetadataAsyncClient client = Ec2MetadataAsyncClient.create();
 CompletableFuture<Ec2MetadataResponse> response = client.get("/latest/meta-data/");
 response.thenAccept(System.out::println);

Closing the client

Once all operations are done, you may close the client to free any resources used by it.
Ec2MetadataAsyncClient client = Ec2MetadataAsyncClient.create();
// ... do the things
client.close();

Note: A single client instance should be reused for multiple requests when possible.