AWS SDK for Go (PILOT)
API Reference

PREVIEW DOCUMENTATION - This is a preview of a new format for the AWS SDK for Go API Reference documentation. For the current AWS SDK for Go API Reference, see https://docs.aws.amazon.com/sdk-for-go/api/.

We welcome your feedback on this new version of the documentation. Send your comments to aws-sdkdocs-feedback@amazon.com.

CreateServiceInput

import "github.com/aws/aws-sdk-go/service/servicediscovery"

type CreateServiceInput struct { CreatorRequestId *string `type:"string" idempotencyToken:"true"` Description *string `type:"string"` DnsConfig *DnsConfig `type:"structure"` HealthCheckConfig *HealthCheckConfig `type:"structure"` HealthCheckCustomConfig *HealthCheckCustomConfig `type:"structure"` Name *string `type:"string" required:"true"` NamespaceId *string `type:"string"` }

CreatorRequestId

Type: *string

A unique string that identifies the request and that allows failed CreateService requests to be retried without the risk of executing the operation twice. CreatorRequestId can be any unique string, for example, a date/time stamp.

Description

Type: *string

A description for the service.

DnsConfig

A complex type that contains information about the Amazon Route 53 DNS records that you want AWS Cloud Map to create when you register an instance.

HealthCheckConfig

Public DNS namespaces only. A complex type that contains settings for an optional health check. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in DnsConfig.

If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

Health checks are basic Route 53 health checks that monitor an AWS endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing (https://aws.amazon.com/route53/pricing/).

Note the following about configuring health checks.

A and AAAA records

If DnsConfig includes configurations for both A and AAAA records, AWS Cloud Map creates a health check that uses the IPv4 address to check the health of the resource. If the endpoint that is specified by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records to be unhealthy.

CNAME records

You can't specify settings for HealthCheckConfig when the DNSConfig includes CNAME for the value of Type. If you do, the CreateService request will fail with an InvalidInput error.

Request interval

A Route 53 health checker in each health-checking region sends a health check request to an endpoint every 30 seconds. On average, your endpoint receives a health check request about every two seconds. However, health checkers don't coordinate with one another, so you'll sometimes see several requests per second followed by a few seconds with no health checks at all.

Health checking regions

Health checkers perform checks from all Route 53 health-checking regions. For a list of the current regions, see Regions (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions).

Alias records

When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, AWS Cloud Map creates a Route 53 alias record. Note the following:

  • If you include HealthCheckConfig and then use the service to register an instance that creates an alias record, Route 53 doesn't create the health check.

Charges for health checks

Health checks are basic Route 53 health checks that monitor an AWS endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing (https://aws.amazon.com/route53/pricing/).

HealthCheckCustomConfig

A complex type that contains information about an optional custom health check. A custom health check, which requires that you use a third-party health checker to evaluate the health of your resources, is useful in the following circumstances:

  • You can't use a health check that is defined by HealthCheckConfig because the resource isn't available over the internet. For example, you can use a custom health check when the instance is in an Amazon VPC. (To check the health of resources in a VPC, the health checker must also be in the VPC.)

  • You want to use a third-party health checker regardless of where your resources are.

If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

To change the status of a custom health check, submit an UpdateInstanceCustomHealthStatus request. Cloud Map doesn't monitor the status of the resource, it just keeps a record of the status specified in the most recent UpdateInstanceCustomHealthStatus request.

Here's how custom health checks work:

You create a service and specify a value for FailureThreshold.

The failure threshold indicates the number of 30-second intervals you want AWS Cloud Map to wait between the time that your application sends an UpdateInstanceCustomHealthStatus request and the time that AWS Cloud Map stops routing internet traffic to the corresponding resource.

You register an instance.

You configure a third-party health checker to monitor the resource that is associated with the new instance.

AWS Cloud Map doesn't check the health of the resource directly.

The third-party health-checker determines that the resource is unhealthy and notifies your application.

Your application submits an UpdateInstanceCustomHealthStatus request.

AWS Cloud Map waits for (FailureThreshold x 30) seconds.

If another UpdateInstanceCustomHealthStatus request doesn't arrive during that time to change the status back to healthy, AWS Cloud Map stops routing traffic to the resource.

Note the following about configuring custom health checks.

Name

Type: *string

The name that you want to assign to the service.

Name is a required field

NamespaceId

Type: *string

The ID of the namespace that you want to use to create the service.

Method

GoString

func (s CreateServiceInput) GoString() string

GoString returns the string representation

SetCreatorRequestId

func (s *CreateServiceInput) SetCreatorRequestId(v string) *CreateServiceInput

SetCreatorRequestId sets the CreatorRequestId field's value.

SetDescription

func (s *CreateServiceInput) SetDescription(v string) *CreateServiceInput

SetDescription sets the Description field's value.

SetDnsConfig

func (s *CreateServiceInput) SetDnsConfig(v *DnsConfig) *CreateServiceInput

SetDnsConfig sets the DnsConfig field's value.

SetHealthCheckConfig

func (s *CreateServiceInput) SetHealthCheckConfig(v *HealthCheckConfig) *CreateServiceInput

SetHealthCheckConfig sets the HealthCheckConfig field's value.

SetHealthCheckCustomConfig

func (s *CreateServiceInput) SetHealthCheckCustomConfig(v *HealthCheckCustomConfig) *CreateServiceInput

SetHealthCheckCustomConfig sets the HealthCheckCustomConfig field's value.

SetName

func (s *CreateServiceInput) SetName(v string) *CreateServiceInput

SetName sets the Name field's value.

SetNamespaceId

func (s *CreateServiceInput) SetNamespaceId(v string) *CreateServiceInput

SetNamespaceId sets the NamespaceId field's value.

String

func (s CreateServiceInput) String() string

String returns the string representation

Validate

func (s *CreateServiceInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

On this page: