aws-cdk.aws-servicediscovery 1.204.0

Last updated:

0 purchases

aws-cdk.aws-servicediscovery 1.204.0 Image
aws-cdk.aws-servicediscovery 1.204.0 Images
Add to Cart

Description:

awscdk.awsservicediscovery 1.204.0

Amazon ECS Service Discovery Construct Library
---


AWS CDK v1 has reached End-of-Support on 2023-06-01.
This package is no longer being updated, and users should migrate to AWS CDK v2.
For more information on how to migrate, see the Migrating to AWS CDK v2 guide.



This module is part of the AWS Cloud Development Kit project.
This package contains constructs for working with AWS Cloud Map
AWS Cloud Map is a fully managed service that you can use to create and
maintain a map of the backend services and resources that your applications
depend on.
For further information on AWS Cloud Map,
see the AWS Cloud Map documentation
HTTP Namespace Example
The following example creates an AWS Cloud Map namespace that
supports API calls, creates a service in that namespace, and
registers an instance to it:
import aws_cdk.core as cdk
import aws_cdk.aws_servicediscovery as servicediscovery

app = cdk.App()
stack = cdk.Stack(app, "aws-servicediscovery-integ")

namespace = servicediscovery.HttpNamespace(stack, "MyNamespace",
name="covfefe"
)

service1 = namespace.create_service("NonIpService",
description="service registering non-ip instances"
)

service1.register_non_ip_instance("NonIpInstance",
custom_attributes={"arn": "arn:aws:s3:::mybucket"}
)

service2 = namespace.create_service("IpService",
description="service registering ip instances",
health_check=servicediscovery.HealthCheckConfig(
type=servicediscovery.HealthCheckType.HTTP,
resource_path="/check"
)
)

service2.register_ip_instance("IpInstance",
ipv4="54.239.25.192"
)

app.synth()

Private DNS Namespace Example
The following example creates an AWS Cloud Map namespace that
supports both API calls and DNS queries within a vpc, creates a
service in that namespace, and registers a loadbalancer as an
instance:
import aws_cdk.aws_ec2 as ec2
import aws_cdk.aws_elasticloadbalancingv2 as elbv2
import aws_cdk.core as cdk
import aws_cdk.aws_servicediscovery as servicediscovery

app = cdk.App()
stack = cdk.Stack(app, "aws-servicediscovery-integ")

vpc = ec2.Vpc(stack, "Vpc", max_azs=2)

namespace = servicediscovery.PrivateDnsNamespace(stack, "Namespace",
name="boobar.com",
vpc=vpc
)

service = namespace.create_service("Service",
dns_record_type=servicediscovery.DnsRecordType.A_AAAA,
dns_ttl=cdk.Duration.seconds(30),
load_balancer=True
)

loadbalancer = elbv2.ApplicationLoadBalancer(stack, "LB", vpc=vpc, internet_facing=True)

service.register_load_balancer("Loadbalancer", loadbalancer)

app.synth()

Public DNS Namespace Example
The following example creates an AWS Cloud Map namespace that
supports both API calls and public DNS queries, creates a service in
that namespace, and registers an IP instance:
import aws_cdk.core as cdk
import aws_cdk.aws_servicediscovery 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=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()

For DNS namespaces, you can also register instances to services with CNAME records:
import aws_cdk.core as cdk
import aws_cdk.aws_servicediscovery 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.CNAME,
dns_ttl=cdk.Duration.seconds(30)
)

service.register_cname_instance("CnameInstance",
instance_cname="service.pizza"
)

app.synth()

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.