Class TaskDefinitionProps
The properties for task definitions.
Inheritance
Namespace: Amazon.CDK.AWS.ECS
Assembly: Amazon.CDK.AWS.ECS.dll
Syntax (csharp)
public class TaskDefinitionProps : Object, ITaskDefinitionProps, ICommonTaskDefinitionProps
Syntax (vb)
Public Class TaskDefinitionProps
Inherits Object
Implements ITaskDefinitionProps, ICommonTaskDefinitionProps
Remarks
ExampleMetadata: infused
Examples
var vpc = Vpc.FromLookup(this, "Vpc", new VpcLookupOptions {
IsDefault = true
});
var cluster = new Cluster(this, "Ec2Cluster", new ClusterProps { Vpc = vpc });
cluster.AddCapacity("DefaultAutoScalingGroup", new AddCapacityOptions {
InstanceType = new InstanceType("t2.micro"),
VpcSubnets = new SubnetSelection { SubnetType = SubnetType.PUBLIC }
});
var taskDefinition = new TaskDefinition(this, "TD", new TaskDefinitionProps {
Compatibility = Compatibility.EC2
});
taskDefinition.AddContainer("TheContainer", new ContainerDefinitionOptions {
Image = ContainerImage.FromRegistry("foo/bar"),
MemoryLimitMiB = 256
});
var runTask = new EcsRunTask(this, "Run", new EcsRunTaskProps {
IntegrationPattern = IntegrationPattern.RUN_JOB,
Cluster = cluster,
TaskDefinition = taskDefinition,
LaunchTarget = new EcsEc2LaunchTarget(new EcsEc2LaunchTargetOptions {
PlacementStrategies = new [] { PlacementStrategy.SpreadAcrossInstances(), PlacementStrategy.PackedByCpu(), PlacementStrategy.Randomly() },
PlacementConstraints = new [] { PlacementConstraint.MemberOf("blieptuut") }
})
});
Synopsis
Constructors
TaskDefinitionProps() |
Properties
Compatibility | The task launch type compatiblity requirement. |
Cpu | The number of cpu units used by the task. |
EphemeralStorageGiB | The amount (in GiB) of ephemeral storage to be allocated to the task. |
ExecutionRole | The name of the IAM task execution role that grants the ECS agent permission to call AWS APIs on your behalf. |
Family | The name of a family that this task definition is registered to. |
InferenceAccelerators | The inference accelerators to use for the containers in the task. |
IpcMode | The IPC resource namespace to use for the containers in the task. |
MemoryMiB | The amount (in MiB) of memory used by the task. |
NetworkMode | |
PidMode | The process namespace to use for the containers in the task. |
PlacementConstraints | The placement constraints to use for tasks in the service. |
ProxyConfiguration | The configuration details for the App Mesh proxy. |
RuntimePlatform | The operating system that your task definitions are running on. |
TaskRole | The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. |
Volumes | The list of volume definitions for the task. |
Constructors
TaskDefinitionProps()
public TaskDefinitionProps()
Properties
Compatibility
The task launch type compatiblity requirement.
public Compatibility Compatibility { get; set; }
Property Value
Cpu
The number of cpu units used by the task.
public string Cpu { get; set; }
Property Value
System.String
Remarks
If you are using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter:
256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)
4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
Default: - CPU units are not specified.
EphemeralStorageGiB
The amount (in GiB) of ephemeral storage to be allocated to the task.
public Nullable<double> EphemeralStorageGiB { get; set; }
Property Value
System.Nullable<System.Double>
Remarks
Only supported in Fargate platform version 1.4.0 or later.
Default: - Undefined, in which case, the task will receive 20GiB ephemeral storage.
ExecutionRole
The name of the IAM task execution role that grants the ECS agent permission to call AWS APIs on your behalf.
public IRole ExecutionRole { get; set; }
Property Value
Remarks
The role will be used to retrieve container images from ECR and create CloudWatch log groups.
Default: - An execution role will be automatically created if you use ECR images in your task definition.
Family
The name of a family that this task definition is registered to.
public string Family { get; set; }
Property Value
System.String
Remarks
A family groups multiple versions of a task definition.
Default: - Automatically generated name.
InferenceAccelerators
The inference accelerators to use for the containers in the task.
public IInferenceAccelerator[] InferenceAccelerators { get; set; }
Property Value
Remarks
Not supported in Fargate.
Default: - No inference accelerators.
IpcMode
The IPC resource namespace to use for the containers in the task.
public Nullable<IpcMode> IpcMode { get; set; }
Property Value
System.Nullable<IpcMode>
Remarks
Not supported in Fargate and Windows containers.
Default: - IpcMode used by the task is not specified
MemoryMiB
The amount (in MiB) of memory used by the task.
public string MemoryMiB { get; set; }
Property Value
System.String
Remarks
If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)
Default: - Memory used by task is not specified.
NetworkMode
PidMode
The process namespace to use for the containers in the task.
public Nullable<PidMode> PidMode { get; set; }
Property Value
System.Nullable<PidMode>
Remarks
Not supported in Fargate and Windows containers.
Default: - PidMode used by the task is not specified
PlacementConstraints
The placement constraints to use for tasks in the service.
public PlacementConstraint[] PlacementConstraints { get; set; }
Property Value
Remarks
You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time).
Not supported in Fargate.
Default: - No placement constraints.
ProxyConfiguration
The configuration details for the App Mesh proxy.
public ProxyConfiguration ProxyConfiguration { get; set; }
Property Value
Remarks
Default: - No proxy configuration.
RuntimePlatform
The operating system that your task definitions are running on.
public IRuntimePlatform RuntimePlatform { get; set; }
Property Value
Remarks
A runtimePlatform is supported only for tasks using the Fargate launch type.
Default: - Undefined.
TaskRole
The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf.
public IRole TaskRole { get; set; }
Property Value
Remarks
Default: - A task role is automatically created for you.
Volumes
The list of volume definitions for the task.
public IVolume[] Volumes { get; set; }
Property Value
IVolume[]
Remarks
For more information, see Task Definition Parameter Volumes.
Default: - No volumes are passed to the Docker daemon on a container instance.