NetworkLoadBalancedServiceBaseProps Struct
The properties for the base NetworkLoadBalancedEc2Service or NetworkLoadBalancedFargateService 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_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 cluster: ecs.Cluster;
declare const containerDefinition: ecs.ContainerDefinition;
declare const containerImage: ecs.ContainerImage;
declare const hostedZone: route53.HostedZone;
declare const listenerCertificate: elbv2.ListenerCertificate;
declare const logDriver: ecs.LogDriver;
declare const namespace: servicediscovery.INamespace;
declare const networkLoadBalancer: elbv2.NetworkLoadBalancer;
declare const role: iam.Role;
declare const secret: ecs.Secret;
declare const vpc: ec2.Vpc;
const networkLoadBalancedServiceBaseProps: ecs_patterns.NetworkLoadBalancedServiceBaseProps = {
capacityProviderStrategies: [{
capacityProvider: 'capacityProvider',
// the properties below are optional
base: 123,
weight: 123,
}],
circuitBreaker: {
enable: false,
rollback: false,
},
cloudMapOptions: {
cloudMapNamespace: namespace,
container: containerDefinition,
containerPort: 123,
dnsRecordType: servicediscovery.DnsRecordType.A,
dnsTtl: cdk.Duration.minutes(30),
failureThreshold: 123,
name: 'name',
},
cluster: cluster,
deploymentController: {
type: ecs.DeploymentControllerType.ECS,
},
desiredCount: 123,
domainName: 'domainName',
domainZone: hostedZone,
enableECSManagedTags: false,
enableExecuteCommand: false,
healthCheckGracePeriod: cdk.Duration.minutes(30),
ipAddressType: elbv2.IpAddressType.IPV4,
listenerCertificate: listenerCertificate,
listenerPort: 123,
loadBalancer: networkLoadBalancer,
maxHealthyPercent: 123,
minHealthyPercent: 123,
propagateTags: ecs.PropagatedTagSource.SERVICE,
publicLoadBalancer: false,
recordType: ecs_patterns.NetworkLoadBalancedServiceRecordType.ALIAS,
serviceName: 'serviceName',
taskImageOptions: {
image: containerImage,
// the properties below are optional
containerName: 'containerName',
containerPort: 123,
dockerLabels: {
dockerLabelsKey: 'dockerLabels',
},
enableLogging: false,
environment: {
environmentKey: 'environment',
},
executionRole: role,
family: 'family',
logDriver: logDriver,
secrets: {
secretsKey: secret,
},
taskRole: role,
},
vpc: vpc,
};
Properties
capacityProviderStrategiesoptionalCapacityProviderStrategy[]capacity_provider_strategiesoptionaltyping.List[CapacityProviderStrategy]capacityProviderStrategiesoptionalList<CapacityProviderStrategy>CapacityProviderStrategiesoptionalCapacityProviderStrategy[]CapacityProviderStrategiesoptional*[]CapacityProviderStrategy= undefined#circuitBreakeroptionalDeploymentCircuitBreakercircuit_breakeroptionalDeploymentCircuitBreakercircuitBreakeroptionalDeploymentCircuitBreakerCircuitBreakeroptionalDeploymentCircuitBreakerCircuitBreakeroptionalDeploymentCircuitBreaker= disabled#If this property is defined, circuit breaker will be implicitly enabled.
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.
deploymentControlleroptionalDeploymentControllerdeployment_controlleroptionalDeploymentControllerdeploymentControlleroptionalDeploymentControllerDeploymentControlleroptionalDeploymentControllerDeploymentControlleroptionalDeploymentController#Default: Rolling update (ECS)
For more information, see Amazon ECS Deployment Types
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.
The minimum value is 1
domainNameoptionalstringdomain_nameoptionalstrdomainNameoptionalStringDomainNameoptionalstringDomainNameoptional*string#Default: No domain name.
domainZoneoptionalIHostedZonedomain_zoneoptionalIHostedZonedomainZoneoptionalIHostedZoneDomainZoneoptionalIHostedZoneDomainZoneoptionalIHostedZone#Default: No Route53 hosted domain zone.
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
ipAddressTypeoptionalIpAddressTypeip_address_typeoptionalIpAddressTypeipAddressTypeoptionalIpAddressTypeIpAddressTypeoptionalIpAddressTypeIpAddressTypeoptionalIpAddressType= IpAddressType.IPV4#If you want to add a UDP or TCP_UDP listener to the load balancer, you must choose IPv4.
listenerCertificateoptionalIListenerCertificatelistener_certificateoptionalIListenerCertificatelistenerCertificateoptionalIListenerCertificateListenerCertificateoptionalIListenerCertificateListenerCertificateoptionalIListenerCertificate= none#If you provide a certificate, the listener's protocol will be TLS. If not, the listener's protocol will be TCP.
listenerPortoptionalnumberlistener_portoptionalint | floatlistenerPortoptionalNumberListenerPortoptionaldoubleListenerPortoptional*float64#Default: 80 or 443 with listenerCertificate provided
loadBalanceroptionalINetworkLoadBalancerload_balanceroptionalINetworkLoadBalancerloadBalanceroptionalINetworkLoadBalancerLoadBalanceroptionalINetworkLoadBalancerLoadBalanceroptionalINetworkLoadBalancer#Default: a new load balancer will be created.
If the load balancer has been imported, the vpc attribute must be specified in the call to fromNetworkLoadBalancerAttributes().
[disable-awslint:ref-via-interface]
maxHealthyPercentoptionalnumbermax_healthy_percentoptionalint | floatmaxHealthyPercentoptionalNumberMaxHealthyPercentoptionaldoubleMaxHealthyPercentoptional*float64#Default: 100 if daemon, otherwise 200
minHealthyPercentoptionalnumbermin_healthy_percentoptionalint | floatminHealthyPercentoptionalNumberMinHealthyPercentoptionaldoubleMinHealthyPercentoptional*float64#Default: 0 if daemon, otherwise 50
propagateTagsoptionalPropagatedTagSourcepropagate_tagsoptionalPropagatedTagSourcepropagateTagsoptionalPropagatedTagSourcePropagateTagsoptionalPropagatedTagSourcePropagateTagsoptionalPropagatedTagSource= none#Tags can only be propagated to the tasks within the service during service creation.
publicLoadBalanceroptionalbooleanpublic_load_balanceroptionalboolpublicLoadBalanceroptionalBooleanPublicLoadBalanceroptionalboolPublicLoadBalanceroptional*bool= true#recordTypeoptionalNetworkLoadBalancedServiceRecordTyperecord_typeoptionalNetworkLoadBalancedServiceRecordTyperecordTypeoptionalNetworkLoadBalancedServiceRecordTypeRecordTypeoptionalNetworkLoadBalancedServiceRecordTypeRecordTypeoptionalNetworkLoadBalancedServiceRecordType#Default: NetworkLoadBalancedServiceRecordType.ALIAS
This is useful if you need to work with DNS systems that do not support alias records.
serviceNameoptionalstringservice_nameoptionalstrserviceNameoptionalStringServiceNameoptionalstringServiceNameoptional*string#Default: CloudFormation-generated name.
taskImageOptionsoptionalNetworkLoadBalancedTaskImageOptionstask_image_optionsoptionalNetworkLoadBalancedTaskImageOptionstaskImageOptionsoptionalNetworkLoadBalancedTaskImageOptionsTaskImageOptionsoptionalNetworkLoadBalancedTaskImageOptionsTaskImageOptionsoptionalNetworkLoadBalancedTaskImageOptions= none#One of taskImageOptions or taskDefinition 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.