@Singleton @Requires(classes=com.amazonaws.services.servicediscovery.AWSServiceDiscovery.class) @Requires(env="ec2") @Requires(beans=Route53AutoRegistrationConfiguration.class) @Requires(property="aws.route53.registration.enabled",value="true",defaultValue="false") @Requires(property="micronaut.application.name") public class Route53AutoNamingRegistrationClient extends DiscoveryServiceAutoRegistration
DiscoveryServiceAutoRegistration for Route 53.| Modifier and Type | Field and Description | 
|---|---|
static String | 
AWS_ALIAS_DNS_NAME
Constant for AWS alias dns name. 
 | 
static String | 
AWS_INSTANCE_CNAME
Constant for AWS instance cname. 
 | 
static String | 
AWS_INSTANCE_IPV4
Constant for AWS intance IPv4. 
 | 
static String | 
AWS_INSTANCE_IPV6
Constant for AWS instance IPv6. 
 | 
static String | 
AWS_INSTANCE_PORT
Constant for AWS instance port. 
 | 
static String | 
ENABLED
Constant for whether route 53 registration is enabled. 
 | 
registered| Modifier | Constructor and Description | 
|---|---|
protected  | 
Route53AutoNamingRegistrationClient(Environment environment,
                                   Route53AutoRegistrationConfiguration route53AutoRegistrationConfiguration,
                                   io.micronaut.configuration.aws.AWSClientConfiguration clientConfiguration,
                                   AmazonComputeInstanceMetadataResolver amazonComputeInstanceMetadataResolver,
                                   Executor executorService,
                                   AWSServiceDiscoveryResolver awsServiceDiscoveryResolver)
Constructor for setup. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
String | 
createNamespace(String name)
This is a helper method for integration tests to create a new namespace. 
 | 
String | 
createService(com.amazonaws.services.servicediscovery.AWSServiceDiscovery serviceDiscovery,
             String name,
             String description,
             String namespaceId,
             Long ttl)
Create service, helper for integration tests. 
 | 
void | 
deleteNamespace(String namespaceId)
these are convenience methods to help cleanup things like integration test data. 
 | 
void | 
deleteService(String serviceId)
These are convenience methods to help cleanup things like integration test data. 
 | 
protected void | 
deregister(ServiceInstance instance)
shutdown instance if it fails health check can gracefully stop. 
 | 
com.amazonaws.services.servicediscovery.AWSServiceDiscoveryAsync | 
getDiscoveryClient()
Gets the discovery client Impl for easier testing. 
 | 
com.amazonaws.services.servicediscovery.model.Service | 
getDiscoveryService()
Gets the discovery service used on route53. 
 | 
protected void | 
pulsate(ServiceInstance instance,
       HealthStatus status)
If custom health check is enabled, this sends a heartbeat to it. 
 | 
protected void | 
register(ServiceInstance instance)
register new instance to the service registry. 
 | 
void | 
setDiscoveryService(com.amazonaws.services.servicediscovery.model.Service discoveryService)
Used for testing. 
 | 
getErrorMessage, performDeregistration, performRegistrationonApplicationEvent, validateApplicationName, validateNameclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsupportspublic static final String AWS_INSTANCE_PORT
public static final String AWS_INSTANCE_IPV4
public static final String AWS_INSTANCE_CNAME
public static final String AWS_INSTANCE_IPV6
public static final String AWS_ALIAS_DNS_NAME
public static final String ENABLED
protected Route53AutoNamingRegistrationClient(Environment environment, Route53AutoRegistrationConfiguration route53AutoRegistrationConfiguration, io.micronaut.configuration.aws.AWSClientConfiguration clientConfiguration, AmazonComputeInstanceMetadataResolver amazonComputeInstanceMetadataResolver, @Named(value="io") Executor executorService, AWSServiceDiscoveryResolver awsServiceDiscoveryResolver)
environment - current environemntsroute53AutoRegistrationConfiguration - config for auto registrationclientConfiguration - general client configuraitonamazonComputeInstanceMetadataResolver - resolver for aws compute metdataexecutorService - this is for executing the thread to monitor the register operation for completionawsServiceDiscoveryResolver - this allows is to swap out the bean for a mock version for unit testingprotected void pulsate(ServiceInstance instance, HealthStatus status)
pulsate in class AutoRegistrationinstance - The instance of the servicestatus - The HealthStatusprotected void deregister(ServiceInstance instance)
deregister in class AutoRegistrationinstance - The ServiceInstanceprotected void register(ServiceInstance instance)
register in class AutoRegistrationinstance - The ServiceInstancepublic void deleteService(String serviceId)
serviceId - service id from AWS to deletepublic void deleteNamespace(String namespaceId)
namespaceId - namespace ID from AWS to deletepublic String createNamespace(String name)
name - name of the namespace in your route53public String createService(com.amazonaws.services.servicediscovery.AWSServiceDiscovery serviceDiscovery, String name, String description, String namespaceId, Long ttl)
serviceDiscovery - service discovery instancename - name of the servicedescription - description of the servicenamespaceId - namespaceId to attach it to (get via cli or api call)ttl - time to live for checking pulsepublic com.amazonaws.services.servicediscovery.AWSServiceDiscoveryAsync getDiscoveryClient()
public com.amazonaws.services.servicediscovery.model.Service getDiscoveryService()
public void setDiscoveryService(com.amazonaws.services.servicediscovery.model.Service discoveryService)
discoveryService - service reference on route53 on AWS