CfnTaskSet
- class aws_cdk.aws_ecs.CfnTaskSet(scope, id, *, cluster, service, task_definition, external_id=None, launch_type=None, load_balancers=None, network_configuration=None, platform_version=None, scale=None, service_registries=None)
Bases:
CfnResource
A CloudFormation
AWS::ECS::TaskSet
.Create a task set in the specified cluster and service. This is used when a service uses the
EXTERNAL
deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide .- CloudformationResource:
AWS::ECS::TaskSet
- Link:
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. import aws_cdk.aws_ecs as ecs cfn_task_set = ecs.CfnTaskSet(self, "MyCfnTaskSet", cluster="cluster", service="service", task_definition="taskDefinition", # the properties below are optional external_id="externalId", launch_type="launchType", load_balancers=[ecs.CfnTaskSet.LoadBalancerProperty( container_name="containerName", container_port=123, load_balancer_name="loadBalancerName", target_group_arn="targetGroupArn" )], network_configuration=ecs.CfnTaskSet.NetworkConfigurationProperty( aws_vpc_configuration=ecs.CfnTaskSet.AwsVpcConfigurationProperty( subnets=["subnets"], # the properties below are optional assign_public_ip="assignPublicIp", security_groups=["securityGroups"] ) ), platform_version="platformVersion", scale=ecs.CfnTaskSet.ScaleProperty( unit="unit", value=123 ), service_registries=[ecs.CfnTaskSet.ServiceRegistryProperty( container_name="containerName", container_port=123, port=123, registry_arn="registryArn" )] )
Create a new
AWS::ECS::TaskSet
.- Parameters:
scope (
Construct
) –scope in which this resource is defined.
id (
str
) –scoped id of the resource.
cluster (
str
) – The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.service (
str
) – The short name or full Amazon Resource Name (ARN) of the service to create the task set in.task_definition (
str
) – The task definition for the tasks in the task set to use.external_id (
Optional
[str
]) – An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have theECS_TASK_SET_EXTERNAL_ID
AWS Cloud Map attribute set to the provided value.launch_type (
Optional
[str
]) – The launch type that new tasks in the task set uses. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide . If alaunchType
is specified, thecapacityProviderStrategy
parameter must be omitted.load_balancers (
Union
[IResolvable
,Sequence
[Union
[IResolvable
,LoadBalancerProperty
,Dict
[str
,Any
]]],None
]) – A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.network_configuration (
Union
[IResolvable
,NetworkConfigurationProperty
,Dict
[str
,Any
],None
]) – The network configuration for the task set.platform_version (
Optional
[str
]) – The platform version that the tasks in the task set uses. A platform version is specified only for tasks using the Fargate launch type. If one isn’t specified, theLATEST
platform version is used.scale (
Union
[IResolvable
,ScaleProperty
,Dict
[str
,Any
],None
]) – A floating-point percentage of your desired number of tasks to place and keep running in the task set.service_registries (
Union
[IResolvable
,Sequence
[Union
[IResolvable
,ServiceRegistryProperty
,Dict
[str
,Any
]]],None
]) – The details of the service discovery registries to assign to this task set. For more information, see Service discovery .
Methods
- add_deletion_override(path)
Syntactic sugar for
addOverride(path, undefined)
.- Parameters:
path (
str
) – The path of the value to delete.- Return type:
None
- add_depends_on(target)
Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
This can be used for resources across stacks (or nested stack) boundaries and the dependency will automatically be transferred to the relevant scope.
- Parameters:
target (
CfnResource
)- Return type:
None
- add_metadata(key, value)
Add a value to the CloudFormation Resource Metadata.
- Parameters:
key (
str
)value (
Any
)
- See:
- Return type:
None
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.
- add_override(path, value)
Adds an override to the synthesized CloudFormation resource.
To add a property override, either use
addPropertyOverride
or prefixpath
with “Properties.” (i.e.Properties.TopicName
).If the override is nested, separate each nested level using a dot (.) in the path parameter. If there is an array as part of the nesting, specify the index in the path.
To include a literal
.
in the property name, prefix with a\
. In most programming languages you will need to write this as"\\."
because the\
itself will need to be escaped.For example:
cfn_resource.add_override("Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes", ["myattribute"]) cfn_resource.add_override("Properties.GlobalSecondaryIndexes.1.ProjectionType", "INCLUDE")
would add the overrides Example:
"Properties": { "GlobalSecondaryIndexes": [ { "Projection": { "NonKeyAttributes": [ "myattribute" ] ... } ... }, { "ProjectionType": "INCLUDE" ... }, ] ... }
The
value
argument toaddOverride
will not be processed or translated in any way. Pass raw JSON values in here with the correct capitalization for CloudFormation. If you pass CDK classes or structs, they will be rendered with lowercased key names, and CloudFormation will reject the template.- Parameters:
path (
str
) –The path of the property, you can use dot notation to override values in complex types. Any intermdediate keys will be created as needed.
value (
Any
) –The value. Could be primitive or complex.
- Return type:
None
- add_property_deletion_override(property_path)
Adds an override that deletes the value of a property from the resource definition.
- Parameters:
property_path (
str
) – The path to the property.- Return type:
None
- add_property_override(property_path, value)
Adds an override to a resource property.
Syntactic sugar for
addOverride("Properties.<...>", value)
.- Parameters:
property_path (
str
) – The path of the property.value (
Any
) – The value.
- Return type:
None
- apply_removal_policy(policy=None, *, apply_to_update_replace_policy=None, default=None)
Sets the deletion policy of the resource based on the removal policy specified.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you’ve removed it from the CDK application or because you’ve made a change that requires the resource to be replaced.
The resource can be deleted (
RemovalPolicy.DESTROY
), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN
).- Parameters:
policy (
Optional
[RemovalPolicy
])apply_to_update_replace_policy (
Optional
[bool
]) – Apply the same deletion policy to the resource’s “UpdateReplacePolicy”. Default: truedefault (
Optional
[RemovalPolicy
]) – The default policy to apply in case the removal policy is not defined. Default: - Default value is resource specific. To determine the default value for a resoure, please consult that specific resource’s documentation.
- Return type:
None
- get_att(attribute_name)
Returns a token for an runtime attribute of this resource.
Ideally, use generated attribute accessors (e.g.
resource.arn
), but this can be used for future compatibility in case there is no generated attribute.- Parameters:
attribute_name (
str
) – The name of the attribute.- Return type:
- get_metadata(key)
Retrieve a value value from the CloudFormation Resource Metadata.
- Parameters:
key (
str
)- See:
- Return type:
Any
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.
- inspect(inspector)
Examines the CloudFormation resource and discloses attributes.
- Parameters:
inspector (
TreeInspector
) –tree inspector to collect and process attributes.
- Return type:
None
- override_logical_id(new_logical_id)
Overrides the auto-generated logical ID with a specific ID.
- Parameters:
new_logical_id (
str
) – The new logical ID to use for this stack element.- Return type:
None
- to_string()
Returns a string representation of this construct.
- Return type:
str
- Returns:
a string representation of this resource
Attributes
- CFN_RESOURCE_TYPE_NAME = 'AWS::ECS::TaskSet'
- attr_id
The ID of the task set.
- CloudformationAttribute:
Id
- cfn_options
Options for this resource, such as condition, update policy etc.
- cfn_resource_type
AWS resource type.
- cluster
The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.
- creation_stack
return:
the stack trace of the point where this Resource was created from, sourced from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most node +internal+ entries filtered.
- external_id
An optional non-unique tag that identifies this task set in external systems.
If the task set is associated with a service discovery registry, the tasks in this task set will have the
ECS_TASK_SET_EXTERNAL_ID
AWS Cloud Map attribute set to the provided value.
- launch_type
The launch type that new tasks in the task set uses.
For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide .
If a
launchType
is specified, thecapacityProviderStrategy
parameter must be omitted.
- load_balancers
A load balancer object representing the load balancer to use with the task set.
The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
- logical_id
The logical ID for this CloudFormation stack element.
The logical ID of the element is calculated from the path of the resource node in the construct tree.
To override this value, use
overrideLogicalId(newLogicalId)
.- Returns:
the logical ID as a stringified token. This value will only get resolved during synthesis.
- network_configuration
The network configuration for the task set.
- node
The construct tree node associated with this construct.
- platform_version
The platform version that the tasks in the task set uses.
A platform version is specified only for tasks using the Fargate launch type. If one isn’t specified, the
LATEST
platform version is used.
- ref
Return a string that will be resolved to a CloudFormation
{ Ref }
for this element.If, by any chance, the intrinsic reference of a resource is not a string, you could coerce it to an IResolvable through
Lazy.any({ produce: resource.ref })
.
- scale
A floating-point percentage of your desired number of tasks to place and keep running in the task set.
- service
The short name or full Amazon Resource Name (ARN) of the service to create the task set in.
- service_registries
The details of the service discovery registries to assign to this task set.
For more information, see Service discovery .
- stack
The stack in which this element is defined.
CfnElements must be defined within a stack scope (directly or indirectly).
- task_definition
The task definition for the tasks in the task set to use.
Static Methods
- classmethod is_cfn_element(x)
Returns
true
if a construct is a stack element (i.e. part of the synthesized cloudformation template).Uses duck-typing instead of
instanceof
to allow stack elements from different versions of this library to be included in the same stack.- Parameters:
x (
Any
)- Return type:
bool
- Returns:
The construct as a stack element or undefined if it is not a stack element.
- classmethod is_cfn_resource(construct)
Check whether the given construct is a CfnResource.
- Parameters:
construct (
IConstruct
)- Return type:
bool
- classmethod is_construct(x)
Return whether the given object is a Construct.
- Parameters:
x (
Any
)- Return type:
bool
AwsVpcConfigurationProperty
- class CfnTaskSet.AwsVpcConfigurationProperty(*, subnets, assign_public_ip=None, security_groups=None)
Bases:
object
An object representing the networking details for a task or service.
- Parameters:
subnets (
Sequence
[str
]) – The IDs of the subnets associated with the task or service. There’s a limit of 16 subnets that can be specified perAwsVpcConfiguration
. .. epigraph:: All specified subnets must be from the same VPC.assign_public_ip (
Optional
[str
]) – Whether the task’s elastic network interface receives a public IP address. The default value isDISABLED
.security_groups (
Optional
[Sequence
[str
]]) – The IDs of the security groups associated with the task or service. If you don’t specify a security group, the default security group for the VPC is used. There’s a limit of 5 security groups that can be specified perAwsVpcConfiguration
. .. epigraph:: All specified security groups must be from the same VPC.
- Link:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. import aws_cdk.aws_ecs as ecs aws_vpc_configuration_property = ecs.CfnTaskSet.AwsVpcConfigurationProperty( subnets=["subnets"], # the properties below are optional assign_public_ip="assignPublicIp", security_groups=["securityGroups"] )
Attributes
- assign_public_ip
Whether the task’s elastic network interface receives a public IP address.
The default value is
DISABLED
.
- security_groups
The IDs of the security groups associated with the task or service.
If you don’t specify a security group, the default security group for the VPC is used. There’s a limit of 5 security groups that can be specified per
AwsVpcConfiguration
. .. epigraph:All specified security groups must be from the same VPC.
- subnets
The IDs of the subnets associated with the task or service.
There’s a limit of 16 subnets that can be specified per
AwsVpcConfiguration
. .. epigraph:All specified subnets must be from the same VPC.
LoadBalancerProperty
- class CfnTaskSet.LoadBalancerProperty(*, container_name=None, container_port=None, load_balancer_name=None, target_group_arn=None)
Bases:
object
The load balancer configuration to use with a service or task set.
When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.
We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.
A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles in the Amazon Elastic Container Service Developer Guide .
- Parameters:
container_name (
Optional
[str
]) – The name of the container (as it appears in a container definition) to associate with the load balancer.container_port (
Union
[int
,float
,None
]) – The port on the container to associate with the load balancer. This port must correspond to acontainerPort
in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they’re launched on must allow ingress traffic on thehostPort
of the port mapping.load_balancer_name (
Optional
[str
]) – The name of the load balancer to associate with the Amazon ECS service or task set. A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.target_group_arn (
Optional
[str
]) – The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set. A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you’re using a Classic Load Balancer, omit the target group ARN. For services using theECS
deployment controller, you can specify one or multiple target groups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide . For services using theCODE_DEPLOY
deployment controller, you’re required to define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide . .. epigraph:: If your service’s task definition uses theawsvpc
network mode, you must chooseip
as the target type, notinstance
. Do this when creating your target groups because tasks that use theawsvpc
network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.
- Link:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. import aws_cdk.aws_ecs as ecs load_balancer_property = ecs.CfnTaskSet.LoadBalancerProperty( container_name="containerName", container_port=123, load_balancer_name="loadBalancerName", target_group_arn="targetGroupArn" )
Attributes
- container_name
The name of the container (as it appears in a container definition) to associate with the load balancer.
- container_port
The port on the container to associate with the load balancer.
This port must correspond to a
containerPort
in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they’re launched on must allow ingress traffic on thehostPort
of the port mapping.
- load_balancer_name
The name of the load balancer to associate with the Amazon ECS service or task set.
A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.
- target_group_arn
The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.
A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you’re using a Classic Load Balancer, omit the target group ARN.
For services using the
ECS
deployment controller, you can specify one or multiple target groups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide .For services using the
CODE_DEPLOY
deployment controller, you’re required to define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide . .. epigraph:If your service's task definition uses the ``awsvpc`` network mode, you must choose ``ip`` as the target type, not ``instance`` . Do this when creating your target groups because tasks that use the ``awsvpc`` network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.
NetworkConfigurationProperty
- class CfnTaskSet.NetworkConfigurationProperty(*, aws_vpc_configuration=None)
Bases:
object
The network configuration for a task or service.
- Parameters:
aws_vpc_configuration (
Union
[IResolvable
,AwsVpcConfigurationProperty
,Dict
[str
,Any
],None
]) – The VPC subnets and security groups that are associated with a task. .. epigraph:: All specified subnets and security groups must be from the same VPC.- Link:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. import aws_cdk.aws_ecs as ecs network_configuration_property = ecs.CfnTaskSet.NetworkConfigurationProperty( aws_vpc_configuration=ecs.CfnTaskSet.AwsVpcConfigurationProperty( subnets=["subnets"], # the properties below are optional assign_public_ip="assignPublicIp", security_groups=["securityGroups"] ) )
Attributes
- aws_vpc_configuration
The VPC subnets and security groups that are associated with a task.
All specified subnets and security groups must be from the same VPC.
ScaleProperty
- class CfnTaskSet.ScaleProperty(*, unit=None, value=None)
Bases:
object
A floating-point percentage of the desired number of tasks to place and keep running in the task set.
- Parameters:
unit (
Optional
[str
]) – The unit of measure for the scale value.value (
Union
[int
,float
,None
]) – The value, specified as a percent total of a service’sdesiredCount
, to scale the task set. Accepted values are numbers between 0 and 100.
- Link:
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. import aws_cdk.aws_ecs as ecs scale_property = ecs.CfnTaskSet.ScaleProperty( unit="unit", value=123 )
Attributes
- unit
The unit of measure for the scale value.
- value
The value, specified as a percent total of a service’s
desiredCount
, to scale the task set.Accepted values are numbers between 0 and 100.
ServiceRegistryProperty
- class CfnTaskSet.ServiceRegistryProperty(*, container_name=None, container_port=None, port=None, registry_arn=None)
Bases:
object
The details for the service registry.
Each service may be associated with one service registry. Multiple service registries for each service are not supported.
When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration.
- Parameters:
container_name (
Optional
[str
]) – The container name value to be used for your service discovery service. It’s already specified in the task definition. If the task definition that your service task specifies uses thebridge
orhost
network mode, you must specify acontainerName
andcontainerPort
combination from the task definition. If the task definition that your service task specifies uses theawsvpc
network mode and a type SRV DNS record is used, you must specify either acontainerName
andcontainerPort
combination or aport
value. However, you can’t specify both.container_port (
Union
[int
,float
,None
]) – The port value to be used for your service discovery service. It’s already specified in the task definition. If the task definition your service task specifies uses thebridge
orhost
network mode, you must specify acontainerName
andcontainerPort
combination from the task definition. If the task definition your service task specifies uses theawsvpc
network mode and a type SRV DNS record is used, you must specify either acontainerName
andcontainerPort
combination or aport
value. However, you can’t specify both.port (
Union
[int
,float
,None
]) – The port value used if your service discovery service specified an SRV record. This field might be used if both theawsvpc
network mode and SRV records are used.registry_arn (
Optional
[str
]) – The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is AWS Cloud Map . For more information, see CreateService .
- Link:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. import aws_cdk.aws_ecs as ecs service_registry_property = ecs.CfnTaskSet.ServiceRegistryProperty( container_name="containerName", container_port=123, port=123, registry_arn="registryArn" )
Attributes
- container_name
The container name value to be used for your service discovery service.
It’s already specified in the task definition. If the task definition that your service task specifies uses the
bridge
orhost
network mode, you must specify acontainerName
andcontainerPort
combination from the task definition. If the task definition that your service task specifies uses theawsvpc
network mode and a type SRV DNS record is used, you must specify either acontainerName
andcontainerPort
combination or aport
value. However, you can’t specify both.
- container_port
The port value to be used for your service discovery service.
It’s already specified in the task definition. If the task definition your service task specifies uses the
bridge
orhost
network mode, you must specify acontainerName
andcontainerPort
combination from the task definition. If the task definition your service task specifies uses theawsvpc
network mode and a type SRV DNS record is used, you must specify either acontainerName
andcontainerPort
combination or aport
value. However, you can’t specify both.
- port
The port value used if your service discovery service specified an SRV record.
This field might be used if both the
awsvpc
network mode and SRV records are used.
- registry_arn
The Amazon Resource Name (ARN) of the service registry.
The currently supported service registry is AWS Cloud Map . For more information, see CreateService .