![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@aws-sdk/client-servicediscovery
Advanced tools
AWS SDK for JavaScript Servicediscovery Client for Node.js, Browser and React Native
@aws-sdk/client-servicediscovery is a part of the AWS SDK for JavaScript, which allows developers to interact with AWS Cloud Map. AWS Cloud Map is a cloud resource discovery service that lets you define custom names for your application resources, and it maintains the updated location of these dynamically changing resources.
Create Service
This feature allows you to create a new service within a specified namespace. The code sample demonstrates how to create a service with DNS configuration.
const { ServiceDiscoveryClient, CreateServiceCommand } = require('@aws-sdk/client-servicediscovery');
const client = new ServiceDiscoveryClient({ region: 'us-west-2' });
const command = new CreateServiceCommand({
Name: 'my-service',
NamespaceId: 'ns-12345678',
DnsConfig: {
NamespaceId: 'ns-12345678',
RoutingPolicy: 'MULTIVALUE',
DnsRecords: [
{
Type: 'A',
TTL: 60
}
]
}
});
client.send(command).then(
(data) => console.log(data),
(error) => console.error(error)
);
Register Instance
This feature allows you to register an instance to a service. The code sample demonstrates how to register an instance with specific attributes like IP address and port.
const { ServiceDiscoveryClient, RegisterInstanceCommand } = require('@aws-sdk/client-servicediscovery');
const client = new ServiceDiscoveryClient({ region: 'us-west-2' });
const command = new RegisterInstanceCommand({
ServiceId: 'srv-12345678',
InstanceId: 'i-12345678',
Attributes: {
AWS_INSTANCE_IPV4: '192.0.2.44',
AWS_INSTANCE_PORT: '80'
}
});
client.send(command).then(
(data) => console.log(data),
(error) => console.error(error)
);
Discover Instances
This feature allows you to discover registered instances for a given namespace and service. The code sample demonstrates how to discover instances with a maximum result limit.
const { ServiceDiscoveryClient, DiscoverInstancesCommand } = require('@aws-sdk/client-servicediscovery');
const client = new ServiceDiscoveryClient({ region: 'us-west-2' });
const command = new DiscoverInstancesCommand({
NamespaceName: 'my-namespace',
ServiceName: 'my-service',
MaxResults: 10
});
client.send(command).then(
(data) => console.log(data),
(error) => console.error(error)
);
Consul by HashiCorp is a service networking solution to connect and secure services across any runtime platform and public or private cloud. It provides service discovery, configuration, and segmentation functionality. Compared to @aws-sdk/client-servicediscovery, Consul offers a more comprehensive suite of features for service mesh and network automation.
etcd is a distributed key-value store that provides a reliable way to store data across a cluster of machines. It is often used for service discovery, distributed configuration management, and leader election. While @aws-sdk/client-servicediscovery is specific to AWS Cloud Map, etcd is a more general-purpose solution that can be used in various environments.
Apache ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. It is widely used in distributed systems for service discovery and configuration management. Compared to @aws-sdk/client-servicediscovery, ZooKeeper is more complex and offers a broader range of distributed coordination capabilities.
AWS SDK for JavaScript ServiceDiscovery Client for Node.js, Browser and React Native.
Cloud Map
With Cloud Map, you can configure public DNS, private DNS, or HTTP namespaces that your microservice applications run in. When an instance becomes available, you can call the Cloud Map API to register the instance with Cloud Map. For public or private DNS namespaces, Cloud Map automatically creates DNS records and an optional health check. Clients that submit public or private DNS queries, or HTTP requests, for the service receive an answer that contains up to eight healthy records.
To install this package, simply type add or install @aws-sdk/client-servicediscovery using your favorite package manager:
npm install @aws-sdk/client-servicediscovery
yarn add @aws-sdk/client-servicediscovery
pnpm add @aws-sdk/client-servicediscovery
The AWS SDK is modulized by clients and commands.
To send a request, you only need to import the ServiceDiscoveryClient
and
the commands you need, for example ListNamespacesCommand
:
// ES5 example
const { ServiceDiscoveryClient, ListNamespacesCommand } = require("@aws-sdk/client-servicediscovery");
// ES6+ example
import { ServiceDiscoveryClient, ListNamespacesCommand } from "@aws-sdk/client-servicediscovery";
To send a request, you:
send
operation on client with command object as input.destroy()
to close open connections.// a client can be shared by different commands.
const client = new ServiceDiscoveryClient({ region: "REGION" });
const params = {
/** input parameters */
};
const command = new ListNamespacesCommand(params);
We recommend using await operator to wait for the promise returned by send operation as follows:
// async/await.
try {
const data = await client.send(command);
// process data.
} catch (error) {
// error handling.
} finally {
// finally.
}
Async-await is clean, concise, intuitive, easy to debug and has better error handling as compared to using Promise chains or callbacks.
You can also use Promise chaining to execute send operation.
client.send(command).then(
(data) => {
// process data.
},
(error) => {
// error handling.
}
);
Promises can also be called using .catch()
and .finally()
as follows:
client
.send(command)
.then((data) => {
// process data.
})
.catch((error) => {
// error handling.
})
.finally(() => {
// finally.
});
We do not recommend using callbacks because of callback hell, but they are supported by the send operation.
// callbacks.
client.send(command, (err, data) => {
// process err and data.
});
The client can also send requests using v2 compatible style. However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post on modular packages in AWS SDK for JavaScript
import * as AWS from "@aws-sdk/client-servicediscovery";
const client = new AWS.ServiceDiscovery({ region: "REGION" });
// async/await.
try {
const data = await client.listNamespaces(params);
// process data.
} catch (error) {
// error handling.
}
// Promises.
client
.listNamespaces(params)
.then((data) => {
// process data.
})
.catch((error) => {
// error handling.
});
// callbacks.
client.listNamespaces(params, (err, data) => {
// process err and data.
});
When the service returns an exception, the error will include the exception information, as well as response metadata (e.g. request id).
try {
const data = await client.send(command);
// process data.
} catch (error) {
const { requestId, cfId, extendedRequestId } = error.$metadata;
console.log({ requestId, cfId, extendedRequestId });
/**
* The keys within exceptions are also parsed.
* You can access them by specifying exception names:
* if (error.name === 'SomeServiceException') {
* const value = error.specialKeyInException;
* }
*/
}
Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
aws-sdk-js
on AWS Developer Blog.aws-sdk-js
.To test your universal JavaScript code in Node.js, browser and react-native environments, visit our code samples repo.
This client code is generated automatically. Any modifications will be overwritten the next time the @aws-sdk/client-servicediscovery
package is updated.
To contribute to client you can check our generate clients scripts.
This SDK is distributed under the Apache License, Version 2.0, see LICENSE for more information.
3.743.0 (2025-02-06)
FAQs
AWS SDK for JavaScript Servicediscovery Client for Node.js, Browser and React Native
The npm package @aws-sdk/client-servicediscovery receives a total of 0 weekly downloads. As such, @aws-sdk/client-servicediscovery popularity was classified as not popular.
We found that @aws-sdk/client-servicediscovery demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.