DiscoverInstances
Discovers registered instances for a specified namespace and service. You can use
DiscoverInstances
to discover instances for any type of namespace. For public and private DNS namespaces,
you can also use DNS queries
to discover instances.
Request Syntax
{
"HealthStatus": "string
",
"MaxResults": number
,
"NamespaceName": "string
",
"OptionalParameters": {
"string
" : "string
"
},
"QueryParameters": {
"string
" : "string
"
},
"ServiceName": "string
"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- HealthStatus
-
The health status of the instances that you want to discover.
Type: String
Valid Values:
HEALTHY | UNHEALTHY | ALL
Required: No
- MaxResults
-
The maximum number of instances that you want AWS Cloud Map to return in the response to a
DiscoverInstances
request. If you don't specify a value forMaxResults
, AWS Cloud Map returns up to 100 instances.Type: Integer
Valid Range: Minimum value of 1. Maximum value of 1000.
Required: No
- NamespaceName
-
The
HttpName
name of the namespace, found in theHttpProperties
member of theProperties
member of the namespace.Type: String
Length Constraints: Maximum length of 1024.
Required: Yes
- OptionalParameters
-
Opportunistic filters to scope the results based on custom attributes. If there are instances that match both the filters specified in both the
QueryParameters
parameter and this parameter, they are returned. Otherwise, these filters are ignored and only instances that match the filters specified in theQueryParameters
parameter are returned.Type: String to string map
Key Length Constraints: Maximum length of 255.
Key Pattern:
^[a-zA-Z0-9!-~]+$
Value Length Constraints: Maximum length of 1024.
Value Pattern:
^([a-zA-Z0-9!-~][ \ta-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$
Required: No
- QueryParameters
-
Filters to scope the results based on custom attributes for the instance. For example,
{version=v1, az=1a}
. Only instances that match all the specified key-value pairs will be returned.Type: String to string map
Key Length Constraints: Maximum length of 255.
Key Pattern:
^[a-zA-Z0-9!-~]+$
Value Length Constraints: Maximum length of 1024.
Value Pattern:
^([a-zA-Z0-9!-~][ \ta-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$
Required: No
- ServiceName
-
The name of the service that you specified when you registered the instance.
Type: String
Pattern:
((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\.$)
Required: Yes
Response Syntax
{
"Instances": [
{
"Attributes": {
"string" : "string"
},
"HealthStatus": "string",
"InstanceId": "string",
"NamespaceName": "string",
"ServiceName": "string"
}
]
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- Instances
-
A complex type that contains one
HttpInstanceSummary
for each registered instance.Type: Array of HttpInstanceSummary objects
Errors
For information about the errors that are common to all actions, see Common Errors.
- InvalidInput
-
One or more specified values aren't valid. For example, a required value might be missing, a numeric value might be outside the allowed range, or a string value might exceed length constraints.
HTTP Status Code: 400
- NamespaceNotFound
-
No namespace exists with the specified ID.
HTTP Status Code: 400
- RequestLimitExceeded
-
The operation can't be completed because you've reached the quota for the number of requests. For more information, see AWS Cloud Map API request throttling quota in the AWS Cloud Map Developer Guide.
HTTP Status Code: 400
- ServiceNotFound
-
No service exists with the specified ID.
HTTP Status Code: 400
Examples
DiscoverInstances Example
This example illustrates one usage of DiscoverInstances.
Sample Request
POST / HTTP/1.1
host:data-servicediscovery.us-west-2.amazonaws.com
x-amz-date:20181118T211819Z
authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20181118/us-west-2/servicediscovery/aws4_request,
SignedHeaders=content-length;content-type;host;user-agent;x-amz-date;x-amz-target,
Signature=[calculated-signature]
x-amz-target:Route53AutoNaming_v20170314.DiscoverInstances
content-type:application/x-amz-json-1.1
content-length:[number of characters in the JSON string]
{
"NamespaceName": "example-public-dns.com",
"ServiceName": "example-dns-pub-service"
}
Sample Response
HTTP/1.1 200
Content-Length: [number of characters in the JSON string]
Content-Type: application/x-amz-json-1.1
{
"Instances": [
{
"Attributes": {
"AWS_INSTANCE_IPV4": "192.0.2.44",
"AWS_INSTANCE_PORT": "80",
"color": "green",
"region": "us-west-2",
"stage": "beta"
},
"HealthStatus": "HEALTHY",
"InstanceId": "i-abcd1234",
"NamespaceName": "example-public-dns.com",
"ServiceName": "example-dns-pub-service"
}
]
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: