Skip to content
v2.274.0

NetworkLoadBalancedTaskImageOptions Struct ​

Example ​

ts
import { Certificate } from 'aws-cdk-lib/aws-certificatemanager';

declare const cluster: ecs.Cluster;
const certificate = Certificate.fromCertificateArn(this, 'Cert', 'arn:aws:acm:us-east-1:123456:certificate/abcdefg');
const loadBalancedEcsService = new ecsPatterns.NetworkLoadBalancedEc2Service(this, 'Service', {
  cluster,
  memoryLimitMiB: 1024,
  // The default value of listenerPort is 443 if you pass in listenerCertificate
  // It is configured to port 4443 here
  listenerPort: 4443,
  listenerCertificate: certificate,
  taskImageOptions: {
    image: ecs.ContainerImage.fromRegistry('test'),
    // The default value of containerPort is 443 if you pass in listenerCertificate
    // It is configured to port 8443 here
    containerPort: 8443,
    environment: {
      TEST_ENVIRONMENT_VARIABLE1: "test environment variable 1 value",
      TEST_ENVIRONMENT_VARIABLE2: "test environment variable 2 value",
    },
  },
  desiredCount: 2,
});

Properties ​

containerNamestringcontainer_namestrcontainerNameStringContainerNamestringContainerName*string= none#
The container name value to be specified in the task definition.
containerPortnumbercontainer_portint | floatcontainerPortNumberContainerPortdoubleContainerPort*float64#
The port number on the container that is bound to the user-specified or automatically assigned host port.

Default: 80 or 443 with listenerCertificate provided

notes

If you are using containers in a task with the awsvpc or host network mode, exposed ports should be specified using containerPort. If you are using containers in a task with the bridge network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range.

Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.

For more information, see hostPort.

dockerLabels{ [key: string]: string }docker_labelstyping.Mapping[str, str]dockerLabelsMap<String, String>DockerLabelsIDictionary<string, string>DockerLabels*map[string]*string#
A key/value map of labels to add to the container.

Default: No labels.

enableLoggingbooleanenable_loggingboolenableLoggingBooleanEnableLoggingboolEnableLogging*bool= true#
Flag to indicate whether to enable logging.
environment{ [key: string]: string }environmenttyping.Mapping[str, str]environmentMap<String, String>EnvironmentIDictionary<string, string>Environment*map[string]*string#
The environment variables to pass to the container.

Default: No environment variables.

executionRoleIRoleexecution_roleIRoleexecutionRoleIRoleExecutionRoleIRoleExecutionRoleIRole#
The name of the task execution IAM role that grants the Amazon ECS container agent permission to call AWS APIs on your behalf.

Default: No value

familystringfamilystrfamilyStringFamilystringFamily*string#
The name of a family that this task definition is registered to.

Default: Automatically generated name.

A family groups multiple versions of a task definition.

The image used to start a container.

Image or taskDefinition must be specified, but not both.

logDriverLogDriverlog_driverLogDriverlogDriverLogDriverLogDriverLogDriverLogDriverLogDriver#
The log driver to use.

Default: AwsLogDriver if enableLogging is true

secrets{ [key: string]: Secret }secretstyping.Mapping[str, Secret]secretsMap<String, Secret>SecretsIDictionary<string, Secret>Secrets*map[string]Secret#
The secret to expose to the container as an environment variable.

Default: No secret environment variables.

taskRoleIRoletask_roleIRoletaskRoleIRoleTaskRoleIRoleTaskRoleIRole#
The name of the task IAM role that grants containers in the task permission to call AWS APIs on your behalf.

Default: A task role is automatically created for you.