Service
- class aws_cdk.aws_servicediscovery.Service(scope, id, *, namespace, discovery_type=None, dns_record_type=None, dns_ttl=None, load_balancer=None, routing_policy=None, custom_health_check=None, description=None, health_check=None, name=None)
Bases:
Resource
Define a CloudMap Service.
- ExampleMetadata:
lit=aws-servicediscovery/test/integ.service-with-public-dns-namespace.lit.ts infused
Example:
import aws_cdk as cdk import aws_cdk as servicediscovery app = cdk.App() stack = cdk.Stack(app, "aws-servicediscovery-integ") namespace = servicediscovery.PublicDnsNamespace(stack, "Namespace", name="foobar.com" ) service = namespace.create_service("Service", name="foo", dns_record_type=servicediscovery.DnsRecordType.A, dns_ttl=cdk.Duration.seconds(30), health_check=cdk.aws_servicediscovery.HealthCheckConfig( type=servicediscovery.HealthCheckType.HTTPS, resource_path="/healthcheck", failure_threshold=2 ) ) service.register_ip_instance("IpInstance", ipv4="54.239.25.192", port=443 ) app.synth()
- Parameters:
scope (
Construct
) –id (
str
) –namespace (
INamespace
) – The namespace that you want to use for DNS configuration.discovery_type (
Optional
[DiscoveryType
]) – Controls how instances within this service can be discovered. Default: DNS_AND_APIdns_record_type (
Optional
[DnsRecordType
]) – The DNS type of the record that you want AWS Cloud Map to create. Supported record types include A, AAAA, A and AAAA (A_AAAA), CNAME, and SRV. Default: Adns_ttl (
Optional
[Duration
]) – The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record. Default: Duration.minutes(1)load_balancer (
Optional
[bool
]) – Whether or not this service will have an Elastic LoadBalancer registered to it as an AliasTargetInstance. Setting this totrue
correctly configures theroutingPolicy
and performs some additional validation. Default: falserouting_policy (
Optional
[RoutingPolicy
]) – The routing policy that you want to apply to all DNS records that AWS Cloud Map creates when you register an instance and specify this service. Default: WEIGHTED for CNAME records and when loadBalancer is true, MULTIVALUE otherwisecustom_health_check (
Union
[HealthCheckCustomConfig
,Dict
[str
,Any
],None
]) – Structure containing failure threshold for a custom health checker. Only one of healthCheckConfig or healthCheckCustomConfig can be specified. See: https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html Default: nonedescription (
Optional
[str
]) – A description of the service. Default: nonehealth_check (
Union
[HealthCheckConfig
,Dict
[str
,Any
],None
]) – Settings for an optional health check. If you specify health check settings, AWS Cloud Map associates the health check with the records that you specify in DnsConfig. Only one of healthCheckConfig or healthCheckCustomConfig can be specified. Not valid for PrivateDnsNamespaces. If you use healthCheck, you can only register IP instances to this service. Default: nonename (
Optional
[str
]) – A name for the Service. Default: CloudFormation-generated name
Methods
- apply_removal_policy(policy)
Apply the given removal policy to this resource.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you’ve removed it from the CDK application or because you’ve made a change that requires the resource to be replaced.
The resource can be deleted (
RemovalPolicy.DESTROY
), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN
).- Parameters:
policy (
RemovalPolicy
) –- Return type:
None
- register_cname_instance(id, *, instance_cname, custom_attributes=None, instance_id=None)
Registers a resource that is accessible using a CNAME.
- Parameters:
id (
str
) –instance_cname (
str
) – 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.custom_attributes (
Optional
[Mapping
[str
,str
]]) – Custom attributes of the instance. Default: noneinstance_id (
Optional
[str
]) – The id of the instance resource. Default: Automatically generated name
- Return type:
- register_ip_instance(id, *, ipv4=None, ipv6=None, port=None, custom_attributes=None, instance_id=None)
Registers a resource that is accessible using an IP address.
- Parameters:
id (
str
) –ipv4 (
Optional
[str
]) – If the service that you specify contains a template for an A record, the IPv4 address that you want AWS Cloud Map to use for the value of the A record. Default: noneipv6 (
Optional
[str
]) – If the service that you specify contains a template for an AAAA record, the IPv6 address that you want AWS Cloud Map to use for the value of the AAAA record. Default: noneport (
Union
[int
,float
,None
]) – The port on the endpoint that you want AWS Cloud Map to perform health checks on. This value is also used for the port value in an SRV record if the service that you specify includes an SRV record. You can also specify a default port that is applied to all instances in the Service configuration. Default: 80custom_attributes (
Optional
[Mapping
[str
,str
]]) – Custom attributes of the instance. Default: noneinstance_id (
Optional
[str
]) – The id of the instance resource. Default: Automatically generated name
- Return type:
- register_load_balancer(id, load_balancer, custom_attributes=None)
Registers an ELB as a new instance with unique name instanceId in this service.
- Parameters:
id (
str
) –load_balancer (
ILoadBalancerV2
) –custom_attributes (
Optional
[Mapping
[str
,str
]]) –
- Return type:
- register_non_ip_instance(id, *, custom_attributes=None, instance_id=None)
Registers a resource that is accessible using values other than an IP address or a domain name (CNAME).
- Parameters:
id (
str
) –custom_attributes (
Optional
[Mapping
[str
,str
]]) – Custom attributes of the instance. Default: noneinstance_id (
Optional
[str
]) – The id of the instance resource. Default: Automatically generated name
- Return type:
- to_string()
Returns a string representation of this construct.
- Return type:
str
Attributes
- discovery_type
The discovery type used by this service.
- dns_record_type
The DnsRecordType used by the service.
- env
The environment this resource belongs to.
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
- namespace
The namespace for the Cloudmap Service.
- node
The tree node.
- routing_policy
The Routing Policy used by the service.
- service_arn
The Arn of the namespace that you want to use for DNS configuration.
- service_id
The ID of the namespace that you want to use for DNS configuration.
- service_name
A name for the Cloudmap Service.
- stack
The stack in which this resource is defined.
Static Methods
- classmethod from_service_attributes(scope, id, *, dns_record_type, namespace, routing_policy, service_arn, service_id, service_name, discovery_type=None)
- Parameters:
scope (
Construct
) –id (
str
) –dns_record_type (
DnsRecordType
) –namespace (
INamespace
) –routing_policy (
RoutingPolicy
) –service_arn (
str
) –service_id (
str
) –service_name (
str
) –discovery_type (
Optional
[DiscoveryType
]) –
- Return type:
- classmethod is_construct(x)
Checks if
x
is a construct.Use this method instead of
instanceof
to properly detectConstruct
instances, even when the construct library is symlinked.Explanation: in JavaScript, multiple copies of the
constructs
library on disk are seen as independent, completely different libraries. As a consequence, the classConstruct
in each copy of theconstructs
library is seen as a different class, and an instance of one class will not test asinstanceof
the other class.npm install
will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of theconstructs
library can be accidentally installed, andinstanceof
will behave unpredictably. It is safest to avoid usinginstanceof
, and using this type-testing method instead.- Parameters:
x (
Any
) – Any object.- Return type:
bool
- Returns:
true if
x
is an object created from a class which extendsConstruct
.
- classmethod is_owned_resource(construct)
Returns true if the construct was created by CDK, and false otherwise.
- Parameters:
construct (
IConstruct
) –- Return type:
bool
- classmethod is_resource(construct)
Check whether the given construct is a Resource.
- Parameters:
construct (
IConstruct
) –- Return type:
bool