aws::servicediscovery的cdk构造库
aws-cdk.aws-servicediscover的Python项目详细描述
Amazon ECS服务发现构造库
这个模块是AWS Cloud Development Kit项目的一部分。
此包包含用于使用aws云映射的结构
aws云地图是一个完全托管的服务,您可以使用它来创建和 维护应用程序的后端服务和资源的映射 依靠。
有关aws云图的更多信息, 参见AWS Cloud Map documentation
http命名空间示例
下面的示例创建了一个aws云映射命名空间 支持api调用,在该命名空间中创建服务,以及 向其注册实例:
importcdk=require('@aws-cdk/core');importservicediscovery=require('../lib');constapp=newcdk.App();conststack=newcdk.Stack(app,'aws-servicediscovery-integ');constnamespace=newservicediscovery.HttpNamespace(stack,'MyNamespace',{name:'covfefe',});constservice1=namespace.createService('NonIpService',{description:'service registering non-ip instances',});service1.registerNonIpInstance('NonIpInstance',{customAttributes:{arn:'arn:aws:s3:::mybucket'}});constservice2=namespace.createService('IpService',{description:'service registering ip instances',healthCheck:{type: servicediscovery.HealthCheckType.HTTP,resourcePath:'/check'}});service2.registerIpInstance('IpInstance',{ipv4:'54.239.25.192',});app.synth();
私有dns命名空间示例
下面的示例创建了一个aws云映射命名空间 支持VPC内的API调用和DNS查询,创建 在该命名空间中的服务,并将负载平衡器注册为 实例:
importec2=require('@aws-cdk/aws-ec2');importelbv2=require('@aws-cdk/aws-elasticloadbalancingv2');importcdk=require('@aws-cdk/core');importservicediscovery=require('../lib');constapp=newcdk.App();conststack=newcdk.Stack(app,'aws-servicediscovery-integ');constvpc=newec2.Vpc(stack,'Vpc',{maxAzs: 2});constnamespace=newservicediscovery.PrivateDnsNamespace(stack,'Namespace',{name:'boobar.com',vpc,});constservice=namespace.createService('Service',{dnsRecordType: servicediscovery.DnsRecordType.A_AAAA,dnsTtl: cdk.Duration.seconds(30),loadBalancer: true});constloadbalancer=newelbv2.ApplicationLoadBalancer(stack,'LB',{vpc,internetFacing: true});service.registerLoadBalancer("Loadbalancer",loadbalancer);app.synth();
公共dns命名空间示例
下面的示例创建了一个aws云映射命名空间 支持api调用和公共dns查询,在 该命名空间,并注册一个IP实例:
importcdk=require('@aws-cdk/core');importservicediscovery=require('../lib');constapp=newcdk.App();conststack=newcdk.Stack(app,'aws-servicediscovery-integ');constnamespace=newservicediscovery.PublicDnsNamespace(stack,'Namespace',{name:'foobar.com',});constservice=namespace.createService('Service',{name:'foo',dnsRecordType: servicediscovery.DnsRecordType.A,dnsTtl: cdk.Duration.seconds(30),healthCheck:{type: servicediscovery.HealthCheckType.HTTPS,resourcePath:'/healthcheck',failureThreshold: 2}});service.registerIpInstance('IpInstance',{ipv4:'54.239.25.192',port: 443});app.synth();
对于dns命名空间,您还可以将实例注册到具有cname记录的服务:
importcdk=require('@aws-cdk/core');importservicediscovery=require('../lib');constapp=newcdk.App();conststack=newcdk.Stack(app,'aws-servicediscovery-integ');constnamespace=newservicediscovery.PublicDnsNamespace(stack,'Namespace',{name:'foobar.com',});constservice=namespace.createService('Service',{name:'foo',dnsRecordType: servicediscovery.DnsRecordType.CNAME,dnsTtl: cdk.Duration.seconds(30)});service.registerCnameInstance('CnameInstance',{instanceCname:'service.pizza',});app.synth();