CreatePublicDnsNamespace - AWS Cloud Map

CreatePublicDnsNamespace

Creates a public namespace based on DNS, which is visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service is backend.example.com. You can discover instances that were registered with a public DNS namespace by using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same AWS account, see AWS Cloud Map quotas in the AWS Cloud Map Developer Guide.

Important

The CreatePublicDnsNamespace API operation is not supported in the AWS GovCloud (US) Regions.

Request Syntax

{ "CreatorRequestId": "string", "Description": "string", "Name": "string", "Properties": { "DnsProperties": { "SOA": { "TTL": number } } }, "Tags": [ { "Key": "string", "Value": "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.

CreatorRequestId

A unique string that identifies the request and that allows failed CreatePublicDnsNamespace requests to be retried without the risk of running the operation twice. CreatorRequestId can be any unique string (for example, a date/timestamp).

Type: String

Length Constraints: Maximum length of 64.

Required: No

Description

A description for the namespace.

Type: String

Length Constraints: Maximum length of 1024.

Required: No

Name

The name that you want to assign to this namespace.

Note

Do not include sensitive information in the name. The name is publicly available using DNS queries.

Type: String

Length Constraints: Maximum length of 253.

Pattern: ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$

Required: Yes

Properties

Properties for the public DNS namespace.

Type: PublicDnsNamespaceProperties object

Required: No

Tags

The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.

Type: Array of Tag objects

Array Members: Minimum number of 0 items. Maximum number of 200 items.

Required: No

Response Syntax

{ "OperationId": "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.

OperationId

A value that you can use to determine whether the request completed successfully. To get the status of the operation, see GetOperation.

Type: String

Length Constraints: Maximum length of 255.

Errors

For information about the errors that are common to all actions, see Common Errors.

DuplicateRequest

The operation is already in progress.

HTTP Status Code: 400

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

NamespaceAlreadyExists

The namespace that you're trying to create already exists.

HTTP Status Code: 400

ResourceLimitExceeded

The resource can't be created because you've reached the quota on the number of resources.

HTTP Status Code: 400

TooManyTagsException

The list of tags on the resource is over the quota. The maximum number of tags that can be applied to a resource is 50.

HTTP Status Code: 400

Examples

CreatePublicDnsNamespace Example

This example illustrates one usage of CreatePublicDnsNamespace.

Sample Request

POST / HTTP/1.1 host:servicediscovery.us-west-2.amazonaws.com x-amz-date:20181118T211705Z 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.CreatePublicDnsNamespace content-type:application/x-amz-json-1.1 content-length:[number of characters in the JSON string] { "CreatorRequestId": "example-creator-request-id-0003", "Name": "example-public-dns.com", "Description": "Example.com AWS Cloud Map Public DNS Namespace" }

Sample Response

HTTP/1.1 200 Content-Length: [number of characters in the JSON string] Content-Type: application/x-amz-json-1.1 { "OperationId":"dns2voqozuhfet5kzxoxg-a-response-example" }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: