ApplicationMultipleTargetGroupsServiceBaseProps Struct
The properties for the base ApplicationMultipleTargetGroupsEc2Service or ApplicationMultipleTargetGroupsFargateService service.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_certificatemanager as certificatemanager } from 'aws-cdk-lib';
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
import { aws_ecs as ecs } from 'aws-cdk-lib';
import { aws_ecs_patterns as ecs_patterns } from 'aws-cdk-lib';
import { aws_elasticloadbalancingv2 as elbv2 } from 'aws-cdk-lib';
import { aws_iam as iam } from 'aws-cdk-lib';
import { aws_route53 as route53 } from 'aws-cdk-lib';
import { aws_servicediscovery as servicediscovery } from 'aws-cdk-lib';
declare const certificate: certificatemanager.Certificate;
declare const cluster: ecs.Cluster;
declare const containerDefinition: ecs.ContainerDefinition;
declare const containerImage: ecs.ContainerImage;
declare const hostedZone: route53.HostedZone;
declare const logDriver: ecs.LogDriver;
declare const namespace: servicediscovery.INamespace;
declare const role: iam.Role;
declare const secret: ecs.Secret;
declare const vpc: ec2.Vpc;
const applicationMultipleTargetGroupsServiceBaseProps: ecs_patterns.ApplicationMultipleTargetGroupsServiceBaseProps = {
cloudMapOptions: {
cloudMapNamespace: namespace,
container: containerDefinition,
containerPort: 123,
dnsRecordType: servicediscovery.DnsRecordType.A,
dnsTtl: cdk.Duration.minutes(30),
failureThreshold: 123,
name: 'name',
},
cluster: cluster,
desiredCount: 123,
enableECSManagedTags: false,
enableExecuteCommand: false,
healthCheckGracePeriod: cdk.Duration.minutes(30),
loadBalancers: [{
listeners: [{
name: 'name',
// the properties below are optional
certificate: certificate,
port: 123,
protocol: elbv2.ApplicationProtocol.HTTP,
sslPolicy: elbv2.SslPolicy.RECOMMENDED_TLS,
}],
name: 'name',
// the properties below are optional
domainName: 'domainName',
domainZone: hostedZone,
idleTimeout: cdk.Duration.minutes(30),
publicLoadBalancer: false,
}],
propagateTags: ecs.PropagatedTagSource.SERVICE,
serviceName: 'serviceName',
targetGroups: [{
containerPort: 123,
// the properties below are optional
hostHeader: 'hostHeader',
listener: 'listener',
pathPattern: 'pathPattern',
priority: 123,
protocol: ecs.Protocol.TCP,
}],
taskImageOptions: {
image: containerImage,
// the properties below are optional
containerName: 'containerName',
containerPorts: [123],
dockerLabels: {
dockerLabelsKey: 'dockerLabels',
},
enableLogging: false,
environment: {
environmentKey: 'environment',
},
executionRole: role,
family: 'family',
logDriver: logDriver,
secrets: {
secretsKey: secret,
},
taskRole: role,
},
vpc: vpc,
};
Properties
cloudMapOptionsoptionalCloudMapOptionscloud_map_optionsoptionalCloudMapOptionscloudMapOptionsoptionalCloudMapOptionsCloudMapOptionsoptionalCloudMapOptionsCloudMapOptionsoptionalCloudMapOptions#Default: AWS Cloud Map service discovery is not enabled.
clusteroptionalIClusterclusteroptionalIClusterclusteroptionalIClusterClusteroptionalIClusterClusteroptionalICluster#Default: create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.
If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.
desiredCountoptionalnumberdesired_countoptionalint | floatdesiredCountoptionalNumberDesiredCountoptionaldoubleDesiredCountoptional*float64#Default: The default is 1 for all new services and uses the existing service's desired count when updating an existing service.
enableECSManagedTagsoptionalbooleanenable_ecs_managed_tagsoptionalboolenableECSManagedTagsoptionalBooleanEnableECSManagedTagsoptionalboolEnableECSManagedTagsoptional*bool= false#For more information, see Tagging Your Amazon ECS Resources
enableExecuteCommandoptionalbooleanenable_execute_commandoptionalboolenableExecuteCommandoptionalBooleanEnableExecuteCommandoptionalboolEnableExecuteCommandoptional*bool= false#healthCheckGracePeriodoptionalDurationhealth_check_grace_periodoptionalDurationhealthCheckGracePeriodoptionalDurationHealthCheckGracePeriodoptionalDurationHealthCheckGracePeriodoptionalDuration#Default: defaults to 60 seconds if at least one load balancer is in-use and it is not already set
loadBalancersoptionalApplicationLoadBalancerProps[]load_balancersoptionaltyping.List[ApplicationLoadBalancerProps]loadBalancersoptionalList<ApplicationLoadBalancerProps>LoadBalancersoptionalApplicationLoadBalancerProps[]LoadBalancersoptional*[]ApplicationLoadBalancerProps#Default: a new load balancer with a listener will be created.
propagateTagsoptionalPropagatedTagSourcepropagate_tagsoptionalPropagatedTagSourcepropagateTagsoptionalPropagatedTagSourcePropagateTagsoptionalPropagatedTagSourcePropagateTagsoptionalPropagatedTagSource= none#Tags can only be propagated to the tasks within the service during service creation.
serviceNameoptionalstringservice_nameoptionalstrserviceNameoptionalStringServiceNameoptionalstringServiceNameoptional*string#Default: CloudFormation-generated name.
targetGroupsoptionalApplicationTargetProps[]target_groupsoptionaltyping.List[ApplicationTargetProps]targetGroupsoptionalList<ApplicationTargetProps>TargetGroupsoptionalApplicationTargetProps[]TargetGroupsoptional*[]ApplicationTargetProps#Default: default portMapping registered as target group and attached to the first defined listener
taskImageOptionsoptionalApplicationLoadBalancedTaskImagePropstask_image_optionsoptionalApplicationLoadBalancedTaskImagePropstaskImageOptionsoptionalApplicationLoadBalancedTaskImagePropsTaskImageOptionsoptionalApplicationLoadBalancedTaskImagePropsTaskImageOptionsoptionalApplicationLoadBalancedTaskImageProps= none#Only one of TaskDefinition or TaskImageOptions must be specified.
Default: uses the VPC defined in the cluster or creates a new VPC.
If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.