Class: AWSCDK::ECSPatterns::ApplicationLoadBalancedEC2ServiceProps

Inherits:
ApplicationLoadBalancedServiceBaseProps
  • Object
show all
Defined in:
ecs_patterns/application_load_balanced_ec2_service_props.rb

Overview

The properties for the ApplicationLoadBalancedEc2Service service.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(capacity_provider_strategies: nil, certificate: nil, circuit_breaker: nil, cloud_map_options: nil, cluster: nil, deployment_controller: nil, desired_count: nil, domain_name: nil, domain_zone: nil, enable_ecs_managed_tags: nil, enable_execute_command: nil, health_check_grace_period: nil, idle_timeout: nil, ip_address_type: nil, listener_port: nil, load_balancer: nil, load_balancer_name: nil, max_healthy_percent: nil, min_healthy_percent: nil, open_listener: nil, propagate_tags: nil, protocol: nil, protocol_version: nil, public_load_balancer: nil, record_type: nil, redirect_http: nil, service_name: nil, ssl_policy: nil, target_protocol: nil, task_image_options: nil, vpc: nil, cpu: nil, memory_limit_mib: nil, memory_reservation_mib: nil, placement_constraints: nil, placement_strategies: nil, task_definition: nil) ⇒ ApplicationLoadBalancedEC2ServiceProps

Returns a new instance of ApplicationLoadBalancedEC2ServiceProps.

Parameters:

  • capacity_provider_strategies (Array<AWSCDK::ECS::CapacityProviderStrategy>, nil) (defaults to: nil)

    A list of Capacity Provider strategies used to place a service.

  • certificate (AWSCDK::CertificateManager::ICertificate, nil) (defaults to: nil)

    Certificate Manager certificate to associate with the load balancer.

  • circuit_breaker (AWSCDK::ECS::DeploymentCircuitBreaker, nil) (defaults to: nil)

    Whether to enable the deployment circuit breaker.

  • cloud_map_options (AWSCDK::ECS::CloudMapOptions, nil) (defaults to: nil)

    The options for configuring an Amazon ECS service to use service discovery.

  • cluster (AWSCDK::ECS::ICluster, nil) (defaults to: nil)

    The name of the cluster that hosts the service.

  • deployment_controller (AWSCDK::ECS::DeploymentController, nil) (defaults to: nil)

    Specifies which deployment controller to use for the service.

  • desired_count (Numeric, nil) (defaults to: nil)

    The desired number of instantiations of the task definition to keep running on the service.

  • domain_name (String, nil) (defaults to: nil)

    The domain name for the service, e.g. "api.example.com.".

  • domain_zone (AWSCDK::Route53::IHostedZone, nil) (defaults to: nil)

    The Route53 hosted zone for the domain, e.g. "example.com.".

  • enable_ecs_managed_tags (Boolean, nil) (defaults to: nil)

    Specifies whether to enable Amazon ECS managed tags for the tasks within the service.

  • enable_execute_command (Boolean, nil) (defaults to: nil)

    Whether ECS Exec should be enabled.

  • health_check_grace_period (AWSCDK::Duration, nil) (defaults to: nil)

    The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.

  • idle_timeout (AWSCDK::Duration, nil) (defaults to: nil)

    The load balancer idle timeout, in seconds.

  • ip_address_type (AWSCDK::ElasticLoadBalancingv2::IPAddressType, nil) (defaults to: nil)

    The type of IP address to use.

  • listener_port (Numeric, nil) (defaults to: nil)

    Listener port of the application load balancer that will serve traffic to the service.

  • load_balancer (AWSCDK::ElasticLoadBalancingv2::IApplicationLoadBalancer, nil) (defaults to: nil)

    The application load balancer that will serve traffic to the service.

  • load_balancer_name (String, nil) (defaults to: nil)

    Name of the load balancer.

  • max_healthy_percent (Numeric, nil) (defaults to: nil)

    The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.

  • min_healthy_percent (Numeric, nil) (defaults to: nil)

    The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment.

  • open_listener (Boolean, nil) (defaults to: nil)

    Determines whether or not the Security Group for the Load Balancer's Listener will be open to all traffic by default.

  • propagate_tags (AWSCDK::ECS::PropagatedTagSource, nil) (defaults to: nil)

    Specifies whether to propagate the tags from the task definition or the service to the tasks in the service.

  • protocol (AWSCDK::ElasticLoadBalancingv2::ApplicationProtocol, nil) (defaults to: nil)

    The protocol for connections from clients to the load balancer.

  • protocol_version (AWSCDK::ElasticLoadBalancingv2::ApplicationProtocolVersion, nil) (defaults to: nil)

    The protocol version to use.

  • public_load_balancer (Boolean, nil) (defaults to: nil)

    Determines whether the Load Balancer will be internet-facing.

  • record_type (AWSCDK::ECSPatterns::ApplicationLoadBalancedServiceRecordType, nil) (defaults to: nil)

    Specifies whether the Route53 record should be a CNAME, an A record using the Alias feature or no record at all.

  • redirect_http (Boolean, nil) (defaults to: nil)

    Specifies whether the load balancer should redirect traffic on port 80 to the listenerPort to support HTTP->HTTPS redirects.

  • service_name (String, nil) (defaults to: nil)

    The name of the service.

  • ssl_policy (AWSCDK::ElasticLoadBalancingv2::SSLPolicy, nil) (defaults to: nil)

    The security policy that defines which ciphers and protocols are supported by the ALB Listener.

  • target_protocol (AWSCDK::ElasticLoadBalancingv2::ApplicationProtocol, nil) (defaults to: nil)

    The protocol for connections from the load balancer to the ECS tasks.

  • task_image_options (AWSCDK::ECSPatterns::ApplicationLoadBalancedTaskImageOptions, nil) (defaults to: nil)

    The properties required to create a new task definition.

  • vpc (AWSCDK::EC2::IVPC, nil) (defaults to: nil)

    The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.

  • cpu (Numeric, nil) (defaults to: nil)

    The number of cpu units used by the task.

  • memory_limit_mib (Numeric, nil) (defaults to: nil)

    The hard limit (in MiB) of memory to present to the container.

  • memory_reservation_mib (Numeric, nil) (defaults to: nil)

    The soft limit (in MiB) of memory to reserve for the container.

  • placement_constraints (Array<AWSCDK::ECS::PlacementConstraint>, nil) (defaults to: nil)

    The placement constraints to use for tasks in the service.

  • placement_strategies (Array<AWSCDK::ECS::PlacementStrategy>, nil) (defaults to: nil)

    The placement strategies to use for tasks in the service.

  • task_definition (AWSCDK::ECS::EC2TaskDefinition, nil) (defaults to: nil)

    The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both..



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 44

def initialize(capacity_provider_strategies: nil, certificate: nil, circuit_breaker: nil, cloud_map_options: nil, cluster: nil, deployment_controller: nil, desired_count: nil, domain_name: nil, domain_zone: nil, enable_ecs_managed_tags: nil, enable_execute_command: nil, health_check_grace_period: nil, idle_timeout: nil, ip_address_type: nil, listener_port: nil, load_balancer: nil, load_balancer_name: nil, max_healthy_percent: nil, min_healthy_percent: nil, open_listener: nil, propagate_tags: nil, protocol: nil, protocol_version: nil, public_load_balancer: nil, record_type: nil, redirect_http: nil, service_name: nil, ssl_policy: nil, target_protocol: nil, task_image_options: nil, vpc: nil, cpu: nil, memory_limit_mib: nil, memory_reservation_mib: nil, placement_constraints: nil, placement_strategies: nil, task_definition: nil)
  @capacity_provider_strategies = capacity_provider_strategies.is_a?(Array) ? capacity_provider_strategies.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::ECS::CapacityProviderStrategy.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : capacity_provider_strategies
  Jsii::Type.check_type(@capacity_provider_strategies, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2FwYWNpdHlQcm92aWRlclN0cmF0ZWd5In0sImtpbmQiOiJhcnJheSJ9fQ==")), "capacityProviderStrategies") unless @capacity_provider_strategies.nil?
  @certificate = certificate
  Jsii::Type.check_type(@certificate, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfY2VydGlmaWNhdGVtYW5hZ2VyLklDZXJ0aWZpY2F0ZSJ9")), "certificate") unless @certificate.nil?
  @circuit_breaker = circuit_breaker.is_a?(Hash) ? ::AWSCDK::ECS::DeploymentCircuitBreaker.new(**circuit_breaker.transform_keys(&:to_sym)) : circuit_breaker
  Jsii::Type.check_type(@circuit_breaker, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLkRlcGxveW1lbnRDaXJjdWl0QnJlYWtlciJ9")), "circuitBreaker") unless @circuit_breaker.nil?
  @cloud_map_options = cloud_map_options.is_a?(Hash) ? ::AWSCDK::ECS::CloudMapOptions.new(**cloud_map_options.transform_keys(&:to_sym)) : cloud_map_options
  Jsii::Type.check_type(@cloud_map_options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLkNsb3VkTWFwT3B0aW9ucyJ9")), "cloudMapOptions") unless @cloud_map_options.nil?
  @cluster = cluster
  Jsii::Type.check_type(@cluster, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLklDbHVzdGVyIn0=")), "cluster") unless @cluster.nil?
  @deployment_controller = deployment_controller.is_a?(Hash) ? ::AWSCDK::ECS::DeploymentController.new(**deployment_controller.transform_keys(&:to_sym)) : deployment_controller
  Jsii::Type.check_type(@deployment_controller, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLkRlcGxveW1lbnRDb250cm9sbGVyIn0=")), "deploymentController") unless @deployment_controller.nil?
  @desired_count = desired_count
  Jsii::Type.check_type(@desired_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "desiredCount") unless @desired_count.nil?
  @domain_name = domain_name
  Jsii::Type.check_type(@domain_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domainName") unless @domain_name.nil?
  @domain_zone = domain_zone
  Jsii::Type.check_type(@domain_zone, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfcm91dGU1My5JSG9zdGVkWm9uZSJ9")), "domainZone") unless @domain_zone.nil?
  @enable_ecs_managed_tags = enable_ecs_managed_tags
  Jsii::Type.check_type(@enable_ecs_managed_tags, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enableECSManagedTags") unless @enable_ecs_managed_tags.nil?
  @enable_execute_command = enable_execute_command
  Jsii::Type.check_type(@enable_execute_command, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enableExecuteCommand") unless @enable_execute_command.nil?
  @health_check_grace_period = health_check_grace_period
  Jsii::Type.check_type(@health_check_grace_period, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "healthCheckGracePeriod") unless @health_check_grace_period.nil?
  @idle_timeout = idle_timeout
  Jsii::Type.check_type(@idle_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "idleTimeout") unless @idle_timeout.nil?
  @ip_address_type = ip_address_type
  Jsii::Type.check_type(@ip_address_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5JcEFkZHJlc3NUeXBlIn0=")), "ipAddressType") unless @ip_address_type.nil?
  @listener_port = listener_port
  Jsii::Type.check_type(@listener_port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "listenerPort") unless @listener_port.nil?
  @load_balancer = load_balancer
  Jsii::Type.check_type(@load_balancer, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5JQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIifQ==")), "loadBalancer") unless @load_balancer.nil?
  @load_balancer_name = load_balancer_name
  Jsii::Type.check_type(@load_balancer_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "loadBalancerName") unless @load_balancer_name.nil?
  @max_healthy_percent = max_healthy_percent
  Jsii::Type.check_type(@max_healthy_percent, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "maxHealthyPercent") unless @max_healthy_percent.nil?
  @min_healthy_percent = min_healthy_percent
  Jsii::Type.check_type(@min_healthy_percent, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "minHealthyPercent") unless @min_healthy_percent.nil?
  @open_listener = open_listener
  Jsii::Type.check_type(@open_listener, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "openListener") unless @open_listener.nil?
  @propagate_tags = propagate_tags
  Jsii::Type.check_type(@propagate_tags, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLlByb3BhZ2F0ZWRUYWdTb3VyY2UifQ==")), "propagateTags") unless @propagate_tags.nil?
  @protocol = protocol
  Jsii::Type.check_type(@protocol, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5BcHBsaWNhdGlvblByb3RvY29sIn0=")), "protocol") unless @protocol.nil?
  @protocol_version = protocol_version
  Jsii::Type.check_type(@protocol_version, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5BcHBsaWNhdGlvblByb3RvY29sVmVyc2lvbiJ9")), "protocolVersion") unless @protocol_version.nil?
  @public_load_balancer = public_load_balancer
  Jsii::Type.check_type(@public_load_balancer, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "publicLoadBalancer") unless @public_load_balancer.nil?
  @record_type = record_type
  Jsii::Type.check_type(@record_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzX3BhdHRlcm5zLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkU2VydmljZVJlY29yZFR5cGUifQ==")), "recordType") unless @record_type.nil?
  @redirect_http = redirect_http
  Jsii::Type.check_type(@redirect_http, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "redirectHTTP") unless @redirect_http.nil?
  @service_name = service_name
  Jsii::Type.check_type(@service_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serviceName") unless @service_name.nil?
  @ssl_policy = ssl_policy
  Jsii::Type.check_type(@ssl_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5Tc2xQb2xpY3kifQ==")), "sslPolicy") unless @ssl_policy.nil?
  @target_protocol = target_protocol
  Jsii::Type.check_type(@target_protocol, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5BcHBsaWNhdGlvblByb3RvY29sIn0=")), "targetProtocol") unless @target_protocol.nil?
  @task_image_options = task_image_options.is_a?(Hash) ? ::AWSCDK::ECSPatterns::ApplicationLoadBalancedTaskImageOptions.new(**task_image_options.transform_keys(&:to_sym)) : task_image_options
  Jsii::Type.check_type(@task_image_options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzX3BhdHRlcm5zLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVGFza0ltYWdlT3B0aW9ucyJ9")), "taskImageOptions") unless @task_image_options.nil?
  @vpc = vpc
  Jsii::Type.check_type(@vpc, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLklWcGMifQ==")), "vpc") unless @vpc.nil?
  @cpu = cpu
  Jsii::Type.check_type(@cpu, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "cpu") unless @cpu.nil?
  @memory_limit_mib = memory_limit_mib
  Jsii::Type.check_type(@memory_limit_mib, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "memoryLimitMiB") unless @memory_limit_mib.nil?
  @memory_reservation_mib = memory_reservation_mib
  Jsii::Type.check_type(@memory_reservation_mib, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "memoryReservationMiB") unless @memory_reservation_mib.nil?
  @placement_constraints = placement_constraints
  Jsii::Type.check_type(@placement_constraints, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuUGxhY2VtZW50Q29uc3RyYWludCJ9LCJraW5kIjoiYXJyYXkifX0=")), "placementConstraints") unless @placement_constraints.nil?
  @placement_strategies = placement_strategies
  Jsii::Type.check_type(@placement_strategies, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuUGxhY2VtZW50U3RyYXRlZ3kifSwia2luZCI6ImFycmF5In19")), "placementStrategies") unless @placement_strategies.nil?
  @task_definition = task_definition
  Jsii::Type.check_type(@task_definition, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWNzLkVjMlRhc2tEZWZpbml0aW9uIn0=")), "taskDefinition") unless @task_definition.nil?
end

Instance Attribute Details

#capacity_provider_strategiesArray<AWSCDK::ECS::CapacityProviderStrategy>? (readonly)

Note:

Default: - undefined

A list of Capacity Provider strategies used to place a service.

Returns:



125
126
127
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 125

def capacity_provider_strategies
  @capacity_provider_strategies
end

#certificateAWSCDK::CertificateManager::ICertificate? (readonly)

Note:

Default: - No certificate associated with the load balancer, if using the HTTP protocol. For HTTPS, a DNS-validated certificate will be created for the load balancer's specified domain name if a domain name and domain zone are specified.

Certificate Manager certificate to associate with the load balancer.

Setting this option will set the load balancer protocol to HTTPS.



132
133
134
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 132

def certificate
  @certificate
end

#circuit_breakerAWSCDK::ECS::DeploymentCircuitBreaker? (readonly)

Note:

Default: - disabled

Whether to enable the deployment circuit breaker.

If this property is defined, circuit breaker will be implicitly enabled.



140
141
142
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 140

def circuit_breaker
  @circuit_breaker
end

#cloud_map_optionsAWSCDK::ECS::CloudMapOptions? (readonly)

Note:

Default: - AWS Cloud Map service discovery is not enabled.

The options for configuring an Amazon ECS service to use service discovery.



145
146
147
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 145

def cloud_map_options
  @cloud_map_options
end

#clusterAWSCDK::ECS::ICluster? (readonly)

Note:

Default: - create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.

The name of the cluster that hosts the service.

If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.

Returns:



152
153
154
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 152

def cluster
  @cluster
end

#cpuNumeric? (readonly)

Note:

Default: none

The number of cpu units used by the task.

Valid values, which determines your range of valid values for the memory parameter:

256 (.25 vCPU) - Available memory values: 0.5GB, 1GB, 2GB

512 (.5 vCPU) - Available memory values: 1GB, 2GB, 3GB, 4GB

1024 (1 vCPU) - Available memory values: 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB

2048 (2 vCPU) - Available memory values: Between 4GB and 16GB in 1GB increments

4096 (4 vCPU) - Available memory values: Between 8GB and 30GB in 1GB increments

This default is set in the underlying FargateTaskDefinition construct.

Returns:

  • (Numeric, nil)


333
334
335
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 333

def cpu
  @cpu
end

#deployment_controllerAWSCDK::ECS::DeploymentController? (readonly)

Note:

Default: - Rolling update (ECS)

Specifies which deployment controller to use for the service.

For more information, see Amazon ECS Deployment Types



160
161
162
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 160

def deployment_controller
  @deployment_controller
end

#desired_countNumeric? (readonly)

Note:

Default: - The default is 1 for all new services and uses the existing service's desired count when updating an existing service.

The desired number of instantiations of the task definition to keep running on the service.

The minimum value is 1

Returns:

  • (Numeric, nil)


167
168
169
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 167

def desired_count
  @desired_count
end

#domain_nameString? (readonly)

Note:

Default: - No domain name.

The domain name for the service, e.g. "api.example.com.".

Returns:

  • (String, nil)


172
173
174
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 172

def domain_name
  @domain_name
end

#domain_zoneAWSCDK::Route53::IHostedZone? (readonly)

Note:

Default: - No Route53 hosted domain zone.

The Route53 hosted zone for the domain, e.g. "example.com.".



177
178
179
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 177

def domain_zone
  @domain_zone
end

#enable_ecs_managed_tagsBoolean? (readonly)

Note:

Default: false

Specifies whether to enable Amazon ECS managed tags for the tasks within the service.

For more information, see Tagging Your Amazon ECS Resources

Returns:

  • (Boolean, nil)


185
186
187
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 185

def enable_ecs_managed_tags
  @enable_ecs_managed_tags
end

#enable_execute_commandBoolean? (readonly)

Note:

Default: - false

Whether ECS Exec should be enabled.

Returns:

  • (Boolean, nil)


190
191
192
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 190

def enable_execute_command
  @enable_execute_command
end

#health_check_grace_periodAWSCDK::Duration? (readonly)

Note:

Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.

Returns:



195
196
197
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 195

def health_check_grace_period
  @health_check_grace_period
end

#idle_timeoutAWSCDK::Duration? (readonly)

Note:

Default: - CloudFormation sets idle timeout to 60 seconds

The load balancer idle timeout, in seconds.

Can be between 1 and 4000 seconds

Returns:



202
203
204
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 202

def idle_timeout
  @idle_timeout
end

#ip_address_typeAWSCDK::ElasticLoadBalancingv2::IPAddressType? (readonly)

Note:

Default: - IpAddressType.IPV4

The type of IP address to use.



207
208
209
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 207

def ip_address_type
  @ip_address_type
end

#listener_portNumeric? (readonly)

Note:

Default: - The default listener port is determined from the protocol (port 80 for HTTP, port 443 for HTTPS). A domain name and zone must be also be specified if using HTTPS.

Listener port of the application load balancer that will serve traffic to the service.

Returns:

  • (Numeric, nil)


212
213
214
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 212

def listener_port
  @listener_port
end

#load_balancerAWSCDK::ElasticLoadBalancingv2::IApplicationLoadBalancer? (readonly)

Note:

Default: - a new load balancer will be created.

The application load balancer that will serve traffic to the service.

The VPC attribute of a load balancer must be specified for it to be used to create a new service with this pattern.

[disable-awslint:ref-via-interface]



222
223
224
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 222

def load_balancer
  @load_balancer
end

#load_balancer_nameString? (readonly)

Note:

Default: - Automatically generated name.

Name of the load balancer.

Returns:

  • (String, nil)


227
228
229
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 227

def load_balancer_name
  @load_balancer_name
end

#max_healthy_percentNumeric? (readonly)

Note:

Default: - 100 if daemon, otherwise 200

The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.

Returns:

  • (Numeric, nil)


232
233
234
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 232

def max_healthy_percent
  @max_healthy_percent
end

#memory_limit_mibNumeric? (readonly)

Note:

Default: - No memory limit.

The hard limit (in MiB) of memory to present to the container.

If your container attempts to exceed the allocated memory, the container is terminated.

At least one of memoryLimitMiB and memoryReservationMiB is required.

Returns:

  • (Numeric, nil)


343
344
345
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 343

def memory_limit_mib
  @memory_limit_mib
end

#memory_reservation_mibNumeric? (readonly)

Note:

Default: - No memory reserved.

The soft limit (in MiB) of memory to reserve for the container.

When system memory is under contention, Docker attempts to keep the container memory within the limit. If the container requires more memory, it can consume up to the value specified by the Memory property or all of the available memory on the container instance—whichever comes first.

At least one of memoryLimitMiB and memoryReservationMiB is required.

Returns:

  • (Numeric, nil)


355
356
357
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 355

def memory_reservation_mib
  @memory_reservation_mib
end

#min_healthy_percentNumeric? (readonly)

Note:

Default: - 0 if daemon, otherwise 50

The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment.

Returns:

  • (Numeric, nil)


237
238
239
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 237

def min_healthy_percent
  @min_healthy_percent
end

#open_listenerBoolean? (readonly)

Note:

Default: true -- The security group allows ingress from all IP addresses.

Determines whether or not the Security Group for the Load Balancer's Listener will be open to all traffic by default.

Returns:

  • (Boolean, nil)


242
243
244
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 242

def open_listener
  @open_listener
end

#placement_constraintsArray<AWSCDK::ECS::PlacementConstraint>? (readonly)

Note:

Default: - No constraints.

The placement constraints to use for tasks in the service.

For more information, see Amazon ECS Task Placement Constraints.

Returns:



363
364
365
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 363

def placement_constraints
  @placement_constraints
end

#placement_strategiesArray<AWSCDK::ECS::PlacementStrategy>? (readonly)

Note:

Default: - No strategies.

The placement strategies to use for tasks in the service.

For more information, see Amazon ECS Task Placement Strategies.

Returns:



371
372
373
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 371

def placement_strategies
  @placement_strategies
end

#propagate_tagsAWSCDK::ECS::PropagatedTagSource? (readonly)

Note:

Default: - none

Specifies whether to propagate the tags from the task definition or the service to the tasks in the service.

Tags can only be propagated to the tasks within the service during service creation.



249
250
251
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 249

def propagate_tags
  @propagate_tags
end

#protocolAWSCDK::ElasticLoadBalancingv2::ApplicationProtocol? (readonly)

Note:

Default: HTTP. If a certificate is specified, the protocol will be set by default to HTTPS.

The protocol for connections from clients to the load balancer.

The load balancer port is determined from the protocol (port 80 for HTTP, port 443 for HTTPS). If HTTPS, either a certificate or domain name and domain zone must also be specified.



258
259
260
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 258

def protocol
  @protocol
end

#protocol_versionAWSCDK::ElasticLoadBalancingv2::ApplicationProtocolVersion? (readonly)

Note:

Default: ApplicationProtocolVersion.HTTP1

The protocol version to use.



263
264
265
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 263

def protocol_version
  @protocol_version
end

#public_load_balancerBoolean? (readonly)

Note:

Default: true

Determines whether the Load Balancer will be internet-facing.

Returns:

  • (Boolean, nil)


268
269
270
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 268

def public_load_balancer
  @public_load_balancer
end

#record_typeAWSCDK::ECSPatterns::ApplicationLoadBalancedServiceRecordType? (readonly)

Note:

Default: ApplicationLoadBalancedServiceRecordType.ALIAS

Specifies whether the Route53 record should be a CNAME, an A record using the Alias feature or no record at all.

This is useful if you need to work with DNS systems that do not support alias records.



275
276
277
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 275

def record_type
  @record_type
end

#redirect_httpBoolean? (readonly)

Note:

Default: false

Specifies whether the load balancer should redirect traffic on port 80 to the listenerPort to support HTTP->HTTPS redirects.

This is only valid if the protocol of the ALB is HTTPS.

Returns:

  • (Boolean, nil)


282
283
284
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 282

def redirect_http
  @redirect_http
end

#service_nameString? (readonly)

Note:

Default: - CloudFormation-generated name.

The name of the service.

Returns:

  • (String, nil)


287
288
289
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 287

def service_name
  @service_name
end

#ssl_policyAWSCDK::ElasticLoadBalancingv2::SSLPolicy? (readonly)

Note:

Default: - The recommended elastic load balancing security policy

The security policy that defines which ciphers and protocols are supported by the ALB Listener.



292
293
294
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 292

def ssl_policy
  @ssl_policy
end

#target_protocolAWSCDK::ElasticLoadBalancingv2::ApplicationProtocol? (readonly)

Note:

Default: HTTP.

The protocol for connections from the load balancer to the ECS tasks.

The default target port is determined from the protocol (port 80 for HTTP, port 443 for HTTPS).



300
301
302
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 300

def target_protocol
  @target_protocol
end

#task_definitionAWSCDK::ECS::EC2TaskDefinition? (readonly)

Note:

Default: - none

The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both..

[disable-awslint:ref-via-interface]



378
379
380
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 378

def task_definition
  @task_definition
end

#task_image_optionsAWSCDK::ECSPatterns::ApplicationLoadBalancedTaskImageOptions? (readonly)

Note:

Default: none

The properties required to create a new task definition.

TaskDefinition or TaskImageOptions must be specified, but not both.



307
308
309
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 307

def task_image_options
  @task_image_options
end

#vpcAWSCDK::EC2::IVPC? (readonly)

Note:

Default: - uses the VPC defined in the cluster or creates a new VPC.

The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.

If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.

Returns:



314
315
316
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 314

def vpc
  @vpc
end

Class Method Details

.jsii_propertiesObject



380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 380

def self.jsii_properties
  {
    :capacity_provider_strategies => "capacityProviderStrategies",
    :certificate => "certificate",
    :circuit_breaker => "circuitBreaker",
    :cloud_map_options => "cloudMapOptions",
    :cluster => "cluster",
    :deployment_controller => "deploymentController",
    :desired_count => "desiredCount",
    :domain_name => "domainName",
    :domain_zone => "domainZone",
    :enable_ecs_managed_tags => "enableECSManagedTags",
    :enable_execute_command => "enableExecuteCommand",
    :health_check_grace_period => "healthCheckGracePeriod",
    :idle_timeout => "idleTimeout",
    :ip_address_type => "ipAddressType",
    :listener_port => "listenerPort",
    :load_balancer => "loadBalancer",
    :load_balancer_name => "loadBalancerName",
    :max_healthy_percent => "maxHealthyPercent",
    :min_healthy_percent => "minHealthyPercent",
    :open_listener => "openListener",
    :propagate_tags => "propagateTags",
    :protocol => "protocol",
    :protocol_version => "protocolVersion",
    :public_load_balancer => "publicLoadBalancer",
    :record_type => "recordType",
    :redirect_http => "redirectHTTP",
    :service_name => "serviceName",
    :ssl_policy => "sslPolicy",
    :target_protocol => "targetProtocol",
    :task_image_options => "taskImageOptions",
    :vpc => "vpc",
    :cpu => "cpu",
    :memory_limit_mib => "memoryLimitMiB",
    :memory_reservation_mib => "memoryReservationMiB",
    :placement_constraints => "placementConstraints",
    :placement_strategies => "placementStrategies",
    :task_definition => "taskDefinition",
  }
end

Instance Method Details

#to_jsiiObject



422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
# File 'ecs_patterns/application_load_balanced_ec2_service_props.rb', line 422

def to_jsii
  result = {}
  result.merge!(super)
  result.merge!({
    "capacityProviderStrategies" => @capacity_provider_strategies,
    "certificate" => @certificate,
    "circuitBreaker" => @circuit_breaker,
    "cloudMapOptions" => @cloud_map_options,
    "cluster" => @cluster,
    "deploymentController" => @deployment_controller,
    "desiredCount" => @desired_count,
    "domainName" => @domain_name,
    "domainZone" => @domain_zone,
    "enableECSManagedTags" => @enable_ecs_managed_tags,
    "enableExecuteCommand" => @enable_execute_command,
    "healthCheckGracePeriod" => @health_check_grace_period,
    "idleTimeout" => @idle_timeout,
    "ipAddressType" => @ip_address_type,
    "listenerPort" => @listener_port,
    "loadBalancer" => @load_balancer,
    "loadBalancerName" => @load_balancer_name,
    "maxHealthyPercent" => @max_healthy_percent,
    "minHealthyPercent" => @min_healthy_percent,
    "openListener" => @open_listener,
    "propagateTags" => @propagate_tags,
    "protocol" => @protocol,
    "protocolVersion" => @protocol_version,
    "publicLoadBalancer" => @public_load_balancer,
    "recordType" => @record_type,
    "redirectHTTP" => @redirect_http,
    "serviceName" => @service_name,
    "sslPolicy" => @ssl_policy,
    "targetProtocol" => @target_protocol,
    "taskImageOptions" => @task_image_options,
    "vpc" => @vpc,
    "cpu" => @cpu,
    "memoryLimitMiB" => @memory_limit_mib,
    "memoryReservationMiB" => @memory_reservation_mib,
    "placementConstraints" => @placement_constraints,
    "placementStrategies" => @placement_strategies,
    "taskDefinition" => @task_definition,
  })
  result.compact
end