Interface ApplicationLoadBalancedTaskImageProps

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
ApplicationLoadBalancedTaskImageProps.Jsii$Proxy

@Generated(value="jsii-pacmak/1.104.0 (build e79254c)", date="2024-11-27T16:50:57.155Z") @Stability(Stable) public interface ApplicationLoadBalancedTaskImageProps extends software.amazon.jsii.JsiiSerializable
Options for configuring a new container.

Example:

 import software.amazon.awscdk.services.certificatemanager.Certificate;
 import software.amazon.awscdk.services.ec2.InstanceType;
 import software.amazon.awscdk.services.ecs.Cluster;
 import software.amazon.awscdk.services.ecs.ContainerImage;
 import software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol;
 import software.amazon.awscdk.services.elasticloadbalancingv2.SslPolicy;
 import software.amazon.awscdk.services.route53.PublicHostedZone;
 Vpc vpc = Vpc.Builder.create(this, "Vpc").maxAzs(1).build();
 ApplicationMultipleTargetGroupsFargateService loadBalancedFargateService = ApplicationMultipleTargetGroupsFargateService.Builder.create(this, "myService")
         .cluster(Cluster.Builder.create(this, "EcsCluster").vpc(vpc).build())
         .memoryLimitMiB(256)
         .taskImageOptions(ApplicationLoadBalancedTaskImageProps.builder()
                 .image(ContainerImage.fromRegistry("amazon/amazon-ecs-sample"))
                 .build())
         .enableExecuteCommand(true)
         .loadBalancers(List.of(ApplicationLoadBalancerProps.builder()
                 .name("lb")
                 .idleTimeout(Duration.seconds(400))
                 .domainName("api.example.com")
                 .domainZone(PublicHostedZone.Builder.create(this, "HostedZone").zoneName("example.com").build())
                 .listeners(List.of(ApplicationListenerProps.builder()
                         .name("listener")
                         .protocol(ApplicationProtocol.HTTPS)
                         .certificate(Certificate.fromCertificateArn(this, "Cert", "helloworld"))
                         .sslPolicy(SslPolicy.TLS12_EXT)
                         .build()))
                 .build(), ApplicationLoadBalancerProps.builder()
                 .name("lb2")
                 .idleTimeout(Duration.seconds(120))
                 .domainName("frontend.com")
                 .domainZone(PublicHostedZone.Builder.create(this, "HostedZone").zoneName("frontend.com").build())
                 .listeners(List.of(ApplicationListenerProps.builder()
                         .name("listener2")
                         .protocol(ApplicationProtocol.HTTPS)
                         .certificate(Certificate.fromCertificateArn(this, "Cert2", "helloworld"))
                         .sslPolicy(SslPolicy.TLS12_EXT)
                         .build()))
                 .build()))
         .targetGroups(List.of(ApplicationTargetProps.builder()
                 .containerPort(80)
                 .listener("listener")
                 .build(), ApplicationTargetProps.builder()
                 .containerPort(90)
                 .pathPattern("a/b/c")
                 .priority(10)
                 .listener("listener")
                 .build(), ApplicationTargetProps.builder()
                 .containerPort(443)
                 .listener("listener2")
                 .build(), ApplicationTargetProps.builder()
                 .containerPort(80)
                 .pathPattern("a/b/c")
                 .priority(10)
                 .listener("listener2")
                 .build()))
         .build();
 
  • Method Details

    • getImage

      @Stability(Stable) @NotNull ContainerImage getImage()
      The image used to start a container.

      Image or taskDefinition must be specified, not both.

      Default: - none

    • getContainerName

      @Stability(Stable) @Nullable default String getContainerName()
      The container name value to be specified in the task definition.

      Default: - web

    • getContainerPorts

      @Stability(Stable) @Nullable default List<Number> getContainerPorts()
      A list of port numbers on the container that is bound to the user-specified or automatically assigned host port.

      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.

      Default: - [80]

    • getDockerLabels

      @Stability(Stable) @Nullable default Map<String,String> getDockerLabels()
      A key/value map of labels to add to the container.

      Default: - No labels.

    • getEnableLogging

      @Stability(Stable) @Nullable default Boolean getEnableLogging()
      Flag to indicate whether to enable logging.

      Default: true

    • getEnvironment

      @Stability(Stable) @Nullable default Map<String,String> getEnvironment()
      The environment variables to pass to the container.

      Default: - No environment variables.

    • getExecutionRole

      @Stability(Stable) @Nullable default IRole getExecutionRole()
      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

    • getFamily

      @Stability(Stable) @Nullable default String getFamily()
      The name of a family that this task definition is registered to.

      A family groups multiple versions of a task definition.

      Default: - Automatically generated name.

    • getLogDriver

      @Stability(Stable) @Nullable default LogDriver getLogDriver()
      The log driver to use.

      Default: - AwsLogDriver if enableLogging is true

    • getSecrets

      @Stability(Stable) @Nullable default Map<String,Secret> getSecrets()
      The secrets to expose to the container as an environment variable.

      Default: - No secret environment variables.

    • getTaskRole

      @Stability(Stable) @Nullable default IRole getTaskRole()
      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.

    • builder

      @Stability(Stable) static ApplicationLoadBalancedTaskImageProps.Builder builder()
      Returns:
      a ApplicationLoadBalancedTaskImageProps.Builder of ApplicationLoadBalancedTaskImageProps