NetworkLoadBalancedTaskImageOptions Struct
Example
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,
});
from aws_cdk.aws_certificatemanager import Certificate
# cluster: ecs.Cluster
certificate = Certificate.from_certificate_arn(self, "Cert", "arn:aws:acm:us-east-1:123456:certificate/abcdefg")
load_balanced_ecs_service = ecs_patterns.NetworkLoadBalancedEc2Service(self, "Service",
cluster=cluster,
memory_limit_mi_b=1024,
# The default value of listenerPort is 443 if you pass in listenerCertificate
# It is configured to port 4443 here
listener_port=4443,
listener_certificate=certificate,
task_image_options=ecsPatterns.NetworkLoadBalancedTaskImageOptions(
image=ecs.ContainerImage.from_registry("test"),
# The default value of containerPort is 443 if you pass in listenerCertificate
# It is configured to port 8443 here
container_port=8443,
environment={
"TEST_ENVIRONMENT_VARIABLE1": "test environment variable 1 value",
"TEST_ENVIRONMENT_VARIABLE2": "test environment variable 2 value"
}
),
desired_count=2
)
import software.amazon.awscdk.services.certificatemanager.Certificate;
Cluster cluster;
ICertificate certificate = Certificate.fromCertificateArn(this, "Cert", "arn:aws:acm:us-east-1:123456:certificate/abcdefg");
NetworkLoadBalancedEc2Service loadBalancedEcsService = NetworkLoadBalancedEc2Service.Builder.create(this, "Service")
.cluster(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(NetworkLoadBalancedTaskImageOptions.builder()
.image(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(Map.of(
"TEST_ENVIRONMENT_VARIABLE1", "test environment variable 1 value",
"TEST_ENVIRONMENT_VARIABLE2", "test environment variable 2 value"))
.build())
.desiredCount(2)
.build();
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.CertificateManager;
Cluster cluster;
var certificate = Certificate.FromCertificateArn(this, "Cert", "arn:aws:acm:us-east-1:123456:certificate/abcdefg");
var loadBalancedEcsService = new NetworkLoadBalancedEc2Service(this, "Service", new NetworkLoadBalancedEc2ServiceProps {
Cluster = 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 = new NetworkLoadBalancedTaskImageOptions {
Image = 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 = new Dictionary<string, string> {
{ "TEST_ENVIRONMENT_VARIABLE1", "test environment variable 1 value" },
{ "TEST_ENVIRONMENT_VARIABLE2", "test environment variable 2 value" }
}
},
DesiredCount = 2
});
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import "github.com/aws/aws-cdk-go/awscdk"
var cluster Cluster
certificate := awscdk.Certificate_FromCertificateArn(this, jsii.String("Cert"), jsii.String("arn:aws:acm:us-east-1:123456:certificate/abcdefg"))
loadBalancedEcsService := ecsPatterns.NewNetworkLoadBalancedEc2Service(this, jsii.String("Service"), &NetworkLoadBalancedEc2ServiceProps{
Cluster: Cluster,
MemoryLimitMiB: jsii.Number(1024),
// The default value of listenerPort is 443 if you pass in listenerCertificate
// It is configured to port 4443 here
ListenerPort: jsii.Number(4443),
ListenerCertificate: certificate,
TaskImageOptions: &NetworkLoadBalancedTaskImageOptions{
Image: ecs.ContainerImage_FromRegistry(jsii.String("test")),
// The default value of containerPort is 443 if you pass in listenerCertificate
// It is configured to port 8443 here
ContainerPort: jsii.Number(8443),
Environment: map[string]*string{
"TEST_ENVIRONMENT_VARIABLE1": jsii.String("test environment variable 1 value"),
"TEST_ENVIRONMENT_VARIABLE2": jsii.String("test environment variable 2 value"),
},
},
DesiredCount: jsii.Number(2),
})
Properties
containerNameoptionalstringcontainer_nameoptionalstrcontainerNameoptionalStringContainerNameoptionalstringContainerNameoptional*string= none#containerPortoptionalnumbercontainer_portoptionalint | floatcontainerPortoptionalNumberContainerPortoptionaldoubleContainerPortoptional*float64#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.
dockerLabelsoptional{ [key: string]: string }docker_labelsoptionaltyping.Mapping[str, str]dockerLabelsoptionalMap<String, String>DockerLabelsoptionalIDictionary<string, string>DockerLabelsoptional*map[string]*string#Default: No labels.
enableLoggingoptionalbooleanenable_loggingoptionalboolenableLoggingoptionalBooleanEnableLoggingoptionalboolEnableLoggingoptional*bool= true#environmentoptional{ [key: string]: string }environmentoptionaltyping.Mapping[str, str]environmentoptionalMap<String, String>EnvironmentoptionalIDictionary<string, string>Environmentoptional*map[string]*string#Default: No environment variables.
executionRoleoptionalIRoleexecution_roleoptionalIRoleexecutionRoleoptionalIRoleExecutionRoleoptionalIRoleExecutionRoleoptionalIRole#Default: No value
Default: Automatically generated name.
A family groups multiple versions of a task definition.
imageContainerImageimageContainerImageimageContainerImageImageContainerImageImageContainerImage= nonerequired#Image or taskDefinition must be specified, but not both.
logDriveroptionalLogDriverlog_driveroptionalLogDriverlogDriveroptionalLogDriverLogDriveroptionalLogDriverLogDriveroptionalLogDriver#Default: AwsLogDriver if enableLogging is true