Copyright | (c) 2013-2018 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay <brendan.g.hay+amazonka@gmail.com> |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
Creates or updates one or more records and optionally a health check based on the settings in a specified service. When you submit a RegisterInstance
request, Amazon Route 53 does the following:
- For each DNS record that you define in the service specified by
ServiceId
, creates or updates a record in the hosted zone that is associated with the corresponding namespace - If the service includes
HealthCheckConfig
, creates or updates a health check based on the settings in the health check configuration - Associates the health check, if any, with each of the records
Important: One RegisterInstance
request must complete before you can submit another request and specify the same service ID and instance ID.
For more information, see CreateService
.
When Route 53 receives a DNS query for the specified DNS name, it returns the applicable value:
- If the health check is healthy : returns all the records
- If the health check is unhealthy : returns the applicable value for the last healthy instance
- If you didn't specify a health check configuration : returns all the records
For the current limit on the number of instances that you can register using the same namespace and using the same service, see Limits on Auto Naming in the Route 53 Developer Guide .
Synopsis
- registerInstance :: Text -> Text -> RegisterInstance
- data RegisterInstance
- riCreatorRequestId :: Lens' RegisterInstance (Maybe Text)
- riServiceId :: Lens' RegisterInstance Text
- riInstanceId :: Lens' RegisterInstance Text
- riAttributes :: Lens' RegisterInstance (HashMap Text Text)
- registerInstanceResponse :: Int -> RegisterInstanceResponse
- data RegisterInstanceResponse
- rirsOperationId :: Lens' RegisterInstanceResponse (Maybe Text)
- rirsResponseStatus :: Lens' RegisterInstanceResponse Int
Creating a Request
Creates a value of RegisterInstance
with the minimum fields required to make a request.
Use one of the following lenses to modify other fields as desired:
riCreatorRequestId
- A unique string that identifies the request and that allows failedRegisterInstance
requests to be retried without the risk of executing the operation twice. You must use a uniqueCreatorRequestId
string every time you submit aRegisterInstance
request if you're registering additional instances for the same namespace and service.CreatorRequestId
can be any unique string, for example, a date/time stamp.riServiceId
- The ID of the service that you want to use for settings for the records and health check that Route 53 will create.riInstanceId
- An identifier that you want to associate with the instance. Note the following: * If the service that is specified byServiceId
includes settings for an SRV record, the value ofInstanceId
is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' . * You can use this value to update an existing instance. * To register a new instance, you must specify a value that is unique among instances that you register by using the same service. * If you specify an existingInstanceId
andServiceId
, Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.riAttributes
- A string map that contains the following information for the service that you specify inServiceId
: * The attributes that apply to the records that are defined in the service. * For each attribute, the applicable value. Supported attribute keys include the following: AWS_ALIAS_DNS_NAME __ If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see DNSName in the topic AliasTarget . Note the following: * The configuration for the service that is specified byServiceId
must include settings for an A record, an AAAA record, or both. * In the service that is specified byServiceId
, the value ofRoutingPolicy
must beWEIGHTED
. * If the service that is specified byServiceId
includesHealthCheckConfig
settings, Route 53 will create the health check, but it won't associate the health check with the alias record. * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers. * If you specify a value forAWS_ALIAS_DNS_NAME
, don't specify values for any of theAWS_INSTANCE
attributes. AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example,example.com
. This value is required if the service specified byServiceId
includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example,192.0.2.44
. This value is required if the service specified byServiceId
includes settings for an A record. If the service includes settings for an SRV record, you must specify a value forAWS_INSTANCE_IPV4
,AWS_INSTANCE_IPV6
, or both. AWS_INSTANCE_IPV6 If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example,2001:0db8:85a3:0000:0000:abcd:0001:2345
. This value is required if the service specified byServiceId
includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value forAWS_INSTANCE_IPV4
,AWS_INSTANCE_IPV6
, or both. AWS_INSTANCE_PORT__ If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includesHealthCheckConfig
, the port on the endpoint that you want Route 53 to send requests to. This value is required if you specified settings for an SRV record when you created the service.
data RegisterInstance Source #
See: registerInstance
smart constructor.
Instances
Request Lenses
riCreatorRequestId :: Lens' RegisterInstance (Maybe Text) Source #
A unique string that identifies the request and that allows failed RegisterInstance
requests to be retried without the risk of executing the operation twice. You must use a unique CreatorRequestId
string every time you submit a RegisterInstance
request if you're registering additional instances for the same namespace and service. CreatorRequestId
can be any unique string, for example, a date/time stamp.
riServiceId :: Lens' RegisterInstance Text Source #
The ID of the service that you want to use for settings for the records and health check that Route 53 will create.
riInstanceId :: Lens' RegisterInstance Text Source #
An identifier that you want to associate with the instance. Note the following: * If the service that is specified by ServiceId
includes settings for an SRV record, the value of InstanceId
is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' . * You can use this value to update an existing instance. * To register a new instance, you must specify a value that is unique among instances that you register by using the same service. * If you specify an existing InstanceId
and ServiceId
, Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.
riAttributes :: Lens' RegisterInstance (HashMap Text Text) Source #
A string map that contains the following information for the service that you specify in ServiceId
: * The attributes that apply to the records that are defined in the service. * For each attribute, the applicable value. Supported attribute keys include the following: AWS_ALIAS_DNS_NAME __ If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see DNSName in the topic AliasTarget . Note the following: * The configuration for the service that is specified by ServiceId
must include settings for an A record, an AAAA record, or both. * In the service that is specified by ServiceId
, the value of RoutingPolicy
must be WEIGHTED
. * If the service that is specified by ServiceId
includes HealthCheckConfig
settings, Route 53 will create the health check, but it won't associate the health check with the alias record. * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers. * If you specify a value for AWS_ALIAS_DNS_NAME
, don't specify values for any of the AWS_INSTANCE
attributes. AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, example.com
. This value is required if the service specified by ServiceId
includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, 192.0.2.44
. This value is required if the service specified by ServiceId
includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4
, AWS_INSTANCE_IPV6
, or both. AWS_INSTANCE_IPV6 If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345
. This value is required if the service specified by ServiceId
includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4
, AWS_INSTANCE_IPV6
, or both. AWS_INSTANCE_PORT__ If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes HealthCheckConfig
, the port on the endpoint that you want Route 53 to send requests to. This value is required if you specified settings for an SRV record when you created the service.
Destructuring the Response
registerInstanceResponse Source #
Creates a value of RegisterInstanceResponse
with the minimum fields required to make a request.
Use one of the following lenses to modify other fields as desired:
rirsOperationId
- A value that you can use to determine whether the request completed successfully. To get the status of the operation, seeGetOperation
.rirsResponseStatus
- -- | The response status code.
data RegisterInstanceResponse Source #
See: registerInstanceResponse
smart constructor.
Instances
Response Lenses
rirsOperationId :: Lens' RegisterInstanceResponse (Maybe Text) Source #
A value that you can use to determine whether the request completed successfully. To get the status of the operation, see GetOperation
.
rirsResponseStatus :: Lens' RegisterInstanceResponse Int Source #
- - | The response status code.