What is @aws-sdk/middleware-endpoint-discovery?
@aws-sdk/middleware-endpoint-discovery is a middleware package for the AWS SDK for JavaScript. It provides functionality to automatically discover and cache endpoints for AWS services that support endpoint discovery. This can help improve performance and reliability by reducing the need to repeatedly look up endpoints.
What are @aws-sdk/middleware-endpoint-discovery's main functionalities?
Automatic Endpoint Discovery
This feature enables automatic endpoint discovery for AWS services. In this example, the S3Client is configured to enable endpoint discovery. When the ListBucketsCommand is sent, the middleware will automatically discover and cache the appropriate endpoint.
const { EndpointDiscoveryMiddleware } = require('@aws-sdk/middleware-endpoint-discovery');
const { S3Client, ListBucketsCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({
region: 'us-west-2',
endpointDiscoveryEnabled: true
});
const command = new ListBucketsCommand({});
client.send(command).then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
Manual Endpoint Discovery
This feature allows for manual configuration of endpoint discovery. In this example, the EndpointDiscoveryMiddleware is manually added to the middleware stack of the S3Client. The middleware is configured to require a discovered endpoint.
const { EndpointDiscoveryMiddleware } = require('@aws-sdk/middleware-endpoint-discovery');
const { S3Client, ListBucketsCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({
region: 'us-west-2'
});
const command = new ListBucketsCommand({});
client.middlewareStack.add(EndpointDiscoveryMiddleware({
isDiscoveredEndpointRequired: true
}), {
step: 'build',
priority: 'high'
});
client.send(command).then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
Other packages similar to @aws-sdk/middleware-endpoint-discovery
@aws-sdk/middleware-retry
@aws-sdk/middleware-retry provides retry logic for AWS SDK requests. It is similar to @aws-sdk/middleware-endpoint-discovery in that it enhances the reliability of AWS SDK operations, but it focuses on retrying failed requests rather than discovering endpoints.
@aws-sdk/middleware-signing
@aws-sdk/middleware-signing handles the signing of AWS SDK requests. While @aws-sdk/middleware-endpoint-discovery focuses on discovering and caching endpoints, @aws-sdk/middleware-signing ensures that requests are properly authenticated and authorized.
@aws-sdk/middleware-logger
@aws-sdk/middleware-logger provides logging capabilities for AWS SDK requests and responses. It is similar in that it adds additional functionality to the AWS SDK middleware stack, but it focuses on logging rather than endpoint discovery.