@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_NAMEConstant for AWS alias dns name. | 
| static String | AWS_INSTANCE_CNAMEConstant for AWS instance cname. | 
| static String | AWS_INSTANCE_IPV4Constant for AWS intance IPv4. | 
| static String | AWS_INSTANCE_IPV6Constant for AWS instance IPv6. | 
| static String | AWS_INSTANCE_PORTConstant for AWS instance port. | 
| static String | ENABLEDConstant 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