AWS v7.43.0, Aug 20 26
AWS v7.43.0, Aug 20 26
Viewing docs for AWS v7.43.0
published on Thursday, Aug 20, 2026 by Pulumi
Manages a revision of an ECS task definition to be used in aws.ecs.Service.
Example Usage
Basic Example
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const service = new aws.ecs.TaskDefinition("service", {
family: "service",
containerDefinitions: JSON.stringify([
{
name: "first",
image: "service-first",
cpu: 10,
memory: 512,
essential: true,
portMappings: [{
containerPort: 80,
hostPort: 80,
}],
},
{
name: "second",
image: "service-second",
cpu: 10,
memory: 256,
essential: true,
portMappings: [{
containerPort: 443,
hostPort: 443,
}],
},
]),
volumes: [{
name: "service-storage",
hostPath: "/ecs/service-storage",
}],
placementConstraints: [{
type: "memberOf",
expression: "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]",
}],
});
import pulumi
import json
import pulumi_aws as aws
service = aws.ecs.TaskDefinition("service",
family="service",
container_definitions=json.dumps([
{
"name": "first",
"image": "service-first",
"cpu": 10,
"memory": 512,
"essential": True,
"portMappings": [{
"containerPort": 80,
"hostPort": 80,
}],
},
{
"name": "second",
"image": "service-second",
"cpu": 10,
"memory": 256,
"essential": True,
"portMappings": [{
"containerPort": 443,
"hostPort": 443,
}],
},
]),
volumes=[{
"name": "service-storage",
"host_path": "/ecs/service-storage",
}],
placement_constraints=[{
"type": "memberOf",
"expression": "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]",
}])
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal([]interface{}{
map[string]interface{}{
"name": "first",
"image": "service-first",
"cpu": 10,
"memory": 512,
"essential": true,
"portMappings": []map[string]int{
{
"containerPort": 80,
"hostPort": 80,
},
},
},
map[string]interface{}{
"name": "second",
"image": "service-second",
"cpu": 10,
"memory": 256,
"essential": true,
"portMappings": []map[string]int{
{
"containerPort": 443,
"hostPort": 443,
},
},
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
Family: pulumi.String("service"),
ContainerDefinitions: pulumi.String(json0),
Volumes: ecs.TaskDefinitionVolumeArray{
&ecs.TaskDefinitionVolumeArgs{
Name: pulumi.String("service-storage"),
HostPath: pulumi.String("/ecs/service-storage"),
},
},
PlacementConstraints: ecs.TaskDefinitionPlacementConstraintArray{
&ecs.TaskDefinitionPlacementConstraintArgs{
Type: pulumi.String("memberOf"),
Expression: pulumi.String("attribute:ecs.availability-zone in [us-west-2a, us-west-2b]"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var service = new Aws.Ecs.TaskDefinition("service", new()
{
Family = "service",
ContainerDefinitions = JsonSerializer.Serialize(new[]
{
new Dictionary<string, object?>
{
["name"] = "first",
["image"] = "service-first",
["cpu"] = 10,
["memory"] = 512,
["essential"] = true,
["portMappings"] = new[]
{
new Dictionary<string, object?>
{
["containerPort"] = 80,
["hostPort"] = 80,
},
},
},
new Dictionary<string, object?>
{
["name"] = "second",
["image"] = "service-second",
["cpu"] = 10,
["memory"] = 256,
["essential"] = true,
["portMappings"] = new[]
{
new Dictionary<string, object?>
{
["containerPort"] = 443,
["hostPort"] = 443,
},
},
},
}),
Volumes = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
{
Name = "service-storage",
HostPath = "/ecs/service-storage",
},
},
PlacementConstraints = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionPlacementConstraintArgs
{
Type = "memberOf",
Expression = "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionPlacementConstraintArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
.family("service")
.containerDefinitions(serializeJson(
jsonArray(
jsonObject(
jsonProperty("name", "first"),
jsonProperty("image", "service-first"),
jsonProperty("cpu", 10),
jsonProperty("memory", 512),
jsonProperty("essential", true),
jsonProperty("portMappings", jsonArray(jsonObject(
jsonProperty("containerPort", 80),
jsonProperty("hostPort", 80)
)))
),
jsonObject(
jsonProperty("name", "second"),
jsonProperty("image", "service-second"),
jsonProperty("cpu", 10),
jsonProperty("memory", 256),
jsonProperty("essential", true),
jsonProperty("portMappings", jsonArray(jsonObject(
jsonProperty("containerPort", 443),
jsonProperty("hostPort", 443)
)))
)
)))
.volumes(TaskDefinitionVolumeArgs.builder()
.name("service-storage")
.hostPath("/ecs/service-storage")
.build())
.placementConstraints(TaskDefinitionPlacementConstraintArgs.builder()
.type("memberOf")
.expression("attribute:ecs.availability-zone in [us-west-2a, us-west-2b]")
.build())
.build());
}
}
resources:
service:
type: aws:ecs:TaskDefinition
properties:
family: service
containerDefinitions:
fn::toJSON:
- name: first
image: service-first
cpu: 10
memory: 512
essential: true
portMappings:
- containerPort: 80
hostPort: 80
- name: second
image: service-second
cpu: 10
memory: 256
essential: true
portMappings:
- containerPort: 443
hostPort: 443
volumes:
- name: service-storage
hostPath: /ecs/service-storage
placementConstraints:
- type: memberOf
expression: attribute:ecs.availability-zone in [us-west-2a, us-west-2b]
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_ecs_taskdefinition" "service" {
family = "service"
container_definitions = jsonencode([{
"name" = "first"
"image" = "service-first"
"cpu" = 10
"memory" = 512
"essential" = true
"portMappings" = [{
"containerPort" = 80
"hostPort" = 80
}]
}, {
"name" = "second"
"image" = "service-second"
"cpu" = 10
"memory" = 256
"essential" = true
"portMappings" = [{
"containerPort" = 443
"hostPort" = 443
}]
}])
volumes {
name = "service-storage"
host_path = "/ecs/service-storage"
}
placement_constraints {
type = "memberOf"
expression = "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]"
}
}
With AppMesh Proxy
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const service = new aws.ecs.TaskDefinition("service", {
family: "service",
containerDefinitions: std.file({
input: "task-definitions/service.json",
}).then(invoke => invoke.result),
proxyConfiguration: {
type: "APPMESH",
containerName: "applicationContainerName",
properties: {
AppPorts: "8080",
EgressIgnoredIPs: "169.254.170.2,169.254.169.254",
IgnoredUID: "1337",
ProxyEgressPort: "15001",
ProxyIngressPort: "15000",
},
},
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
service = aws.ecs.TaskDefinition("service",
family="service",
container_definitions=std.file(input="task-definitions/service.json").result,
proxy_configuration={
"type": "APPMESH",
"container_name": "applicationContainerName",
"properties": {
"AppPorts": "8080",
"EgressIgnoredIPs": "169.254.170.2,169.254.169.254",
"IgnoredUID": "1337",
"ProxyEgressPort": "15001",
"ProxyIngressPort": "15000",
},
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
invokeFile, err := std.File(ctx, &std.FileArgs{
Input: "task-definitions/service.json",
}, nil)
if err != nil {
return err
}
_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
Family: pulumi.String("service"),
ContainerDefinitions: pulumi.String(invokeFile.Result),
ProxyConfiguration: &ecs.TaskDefinitionProxyConfigurationArgs{
Type: pulumi.String("APPMESH"),
ContainerName: pulumi.String("applicationContainerName"),
Properties: pulumi.StringMap{
"AppPorts": pulumi.String("8080"),
"EgressIgnoredIPs": pulumi.String("169.254.170.2,169.254.169.254"),
"IgnoredUID": pulumi.String("1337"),
"ProxyEgressPort": pulumi.String("15001"),
"ProxyIngressPort": pulumi.String("15000"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var service = new Aws.Ecs.TaskDefinition("service", new()
{
Family = "service",
ContainerDefinitions = Std.File.Invoke(new()
{
Input = "task-definitions/service.json",
}).Apply(invoke => invoke.Result),
ProxyConfiguration = new Aws.Ecs.Inputs.TaskDefinitionProxyConfigurationArgs
{
Type = "APPMESH",
ContainerName = "applicationContainerName",
Properties =
{
{ "AppPorts", "8080" },
{ "EgressIgnoredIPs", "169.254.170.2,169.254.169.254" },
{ "IgnoredUID", "1337" },
{ "ProxyEgressPort", "15001" },
{ "ProxyIngressPort", "15000" },
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionProxyConfigurationArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
.family("service")
.containerDefinitions(StdFunctions.file(FileArgs.builder()
.input("task-definitions/service.json")
.build()).result())
.proxyConfiguration(TaskDefinitionProxyConfigurationArgs.builder()
.type("APPMESH")
.containerName("applicationContainerName")
.properties(Map.ofEntries(
Map.entry("AppPorts", "8080"),
Map.entry("EgressIgnoredIPs", "169.254.170.2,169.254.169.254"),
Map.entry("IgnoredUID", "1337"),
Map.entry("ProxyEgressPort", "15001"),
Map.entry("ProxyIngressPort", "15000")
))
.build())
.build());
}
}
resources:
service:
type: aws:ecs:TaskDefinition
properties:
family: service
containerDefinitions:
fn::invoke:
function: std:file
arguments:
input: task-definitions/service.json
return: result
proxyConfiguration:
type: APPMESH
containerName: applicationContainerName
properties:
AppPorts: '8080'
EgressIgnoredIPs: 169.254.170.2,169.254.169.254
IgnoredUID: '1337'
ProxyEgressPort: 15001
ProxyIngressPort: 15000
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
std = {
source = "pulumi/std"
}
}
}
resource "aws_ecs_taskdefinition" "service" {
family = "service"
container_definitions = file("task-definitions/service.json")
proxy_configuration = {
type = "APPMESH"
container_name = "applicationContainerName"
properties = {
"AppPorts" = "8080"
"EgressIgnoredIPs" = "169.254.170.2,169.254.169.254"
"IgnoredUID" = "1337"
"ProxyEgressPort" = 15001
"ProxyIngressPort" = 15000
}
}
}
Example Using dockerVolumeConfiguration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const service = new aws.ecs.TaskDefinition("service", {
family: "service",
containerDefinitions: std.file({
input: "task-definitions/service.json",
}).then(invoke => invoke.result),
volumes: [{
name: "service-storage",
dockerVolumeConfiguration: {
scope: "shared",
autoprovision: true,
driver: "local",
driverOpts: {
type: "nfs",
device: `${fs.dnsName}:/`,
o: `addr=${fs.dnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport`,
},
},
}],
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
service = aws.ecs.TaskDefinition("service",
family="service",
container_definitions=std.file(input="task-definitions/service.json").result,
volumes=[{
"name": "service-storage",
"docker_volume_configuration": {
"scope": "shared",
"autoprovision": True,
"driver": "local",
"driver_opts": {
"type": "nfs",
"device": f"{fs['dnsName']}:/",
"o": f"addr={fs['dnsName']},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport",
},
},
}])
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
invokeFile, err := std.File(ctx, &std.FileArgs{
Input: "task-definitions/service.json",
}, nil)
if err != nil {
return err
}
_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
Family: pulumi.String("service"),
ContainerDefinitions: pulumi.String(invokeFile.Result),
Volumes: ecs.TaskDefinitionVolumeArray{
&ecs.TaskDefinitionVolumeArgs{
Name: pulumi.String("service-storage"),
DockerVolumeConfiguration: &ecs.TaskDefinitionVolumeDockerVolumeConfigurationArgs{
Scope: pulumi.String("shared"),
Autoprovision: pulumi.Bool(true),
Driver: pulumi.String("local"),
DriverOpts: pulumi.StringMap{
"type": pulumi.String("nfs"),
"device": pulumi.Sprintf("%v:/", fs.DnsName),
"o": pulumi.Sprintf("addr=%v,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport", fs.DnsName),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var service = new Aws.Ecs.TaskDefinition("service", new()
{
Family = "service",
ContainerDefinitions = Std.File.Invoke(new()
{
Input = "task-definitions/service.json",
}).Apply(invoke => invoke.Result),
Volumes = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
{
Name = "service-storage",
DockerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeDockerVolumeConfigurationArgs
{
Scope = "shared",
Autoprovision = true,
Driver = "local",
DriverOpts =
{
{ "type", "nfs" },
{ "device", $"{fs.DnsName}:/" },
{ "o", $"addr={fs.DnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport" },
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeDockerVolumeConfigurationArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
.family("service")
.containerDefinitions(StdFunctions.file(FileArgs.builder()
.input("task-definitions/service.json")
.build()).result())
.volumes(TaskDefinitionVolumeArgs.builder()
.name("service-storage")
.dockerVolumeConfiguration(TaskDefinitionVolumeDockerVolumeConfigurationArgs.builder()
.scope("shared")
.autoprovision(true)
.driver("local")
.driverOpts(Map.ofEntries(
Map.entry("type", "nfs"),
Map.entry("device", String.format("%s:/", fs.dnsName())),
Map.entry("o", String.format("addr=%s,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport", fs.dnsName()))
))
.build())
.build())
.build());
}
}
resources:
service:
type: aws:ecs:TaskDefinition
properties:
family: service
containerDefinitions:
fn::invoke:
function: std:file
arguments:
input: task-definitions/service.json
return: result
volumes:
- name: service-storage
dockerVolumeConfiguration:
scope: shared
autoprovision: true
driver: local
driverOpts:
type: nfs
device: ${fs.dnsName}:/
o: addr=${fs.dnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
std = {
source = "pulumi/std"
}
}
}
resource "aws_ecs_taskdefinition" "service" {
family = "service"
container_definitions = file("task-definitions/service.json")
volumes {
name = "service-storage"
docker_volume_configuration = {
scope = "shared"
autoprovision = true
driver = "local"
driver_opts = {
"type" = "nfs"
"device" ="${fs.dnsName}:/"
"o" ="addr=${fs.dnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"
}
}
}
}
Example Using efsVolumeConfiguration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const service = new aws.ecs.TaskDefinition("service", {
family: "service",
containerDefinitions: std.file({
input: "task-definitions/service.json",
}).then(invoke => invoke.result),
volumes: [{
name: "service-storage",
efsVolumeConfiguration: {
fileSystemId: fs.id,
rootDirectory: "/opt/data",
transitEncryption: "ENABLED",
transitEncryptionPort: 2999,
authorizationConfig: {
accessPointId: test.id,
iam: "ENABLED",
},
},
}],
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
service = aws.ecs.TaskDefinition("service",
family="service",
container_definitions=std.file(input="task-definitions/service.json").result,
volumes=[{
"name": "service-storage",
"efs_volume_configuration": {
"file_system_id": fs["id"],
"root_directory": "/opt/data",
"transit_encryption": "ENABLED",
"transit_encryption_port": 2999,
"authorization_config": {
"access_point_id": test["id"],
"iam": "ENABLED",
},
},
}])
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
invokeFile, err := std.File(ctx, &std.FileArgs{
Input: "task-definitions/service.json",
}, nil)
if err != nil {
return err
}
_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
Family: pulumi.String("service"),
ContainerDefinitions: pulumi.String(invokeFile.Result),
Volumes: ecs.TaskDefinitionVolumeArray{
&ecs.TaskDefinitionVolumeArgs{
Name: pulumi.String("service-storage"),
EfsVolumeConfiguration: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationArgs{
FileSystemId: pulumi.Any(fs.Id),
RootDirectory: pulumi.String("/opt/data"),
TransitEncryption: pulumi.String("ENABLED"),
TransitEncryptionPort: pulumi.Int(2999),
AuthorizationConfig: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{
AccessPointId: pulumi.Any(test.Id),
Iam: pulumi.String("ENABLED"),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var service = new Aws.Ecs.TaskDefinition("service", new()
{
Family = "service",
ContainerDefinitions = Std.File.Invoke(new()
{
Input = "task-definitions/service.json",
}).Apply(invoke => invoke.Result),
Volumes = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
{
Name = "service-storage",
EfsVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs
{
FileSystemId = fs.Id,
RootDirectory = "/opt/data",
TransitEncryption = "ENABLED",
TransitEncryptionPort = 2999,
AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs
{
AccessPointId = test.Id,
Iam = "ENABLED",
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
.family("service")
.containerDefinitions(StdFunctions.file(FileArgs.builder()
.input("task-definitions/service.json")
.build()).result())
.volumes(TaskDefinitionVolumeArgs.builder()
.name("service-storage")
.efsVolumeConfiguration(TaskDefinitionVolumeEfsVolumeConfigurationArgs.builder()
.fileSystemId(fs.id())
.rootDirectory("/opt/data")
.transitEncryption("ENABLED")
.transitEncryptionPort(2999)
.authorizationConfig(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs.builder()
.accessPointId(test.id())
.iam("ENABLED")
.build())
.build())
.build())
.build());
}
}
resources:
service:
type: aws:ecs:TaskDefinition
properties:
family: service
containerDefinitions:
fn::invoke:
function: std:file
arguments:
input: task-definitions/service.json
return: result
volumes:
- name: service-storage
efsVolumeConfiguration:
fileSystemId: ${fs.id}
rootDirectory: /opt/data
transitEncryption: ENABLED
transitEncryptionPort: 2999
authorizationConfig:
accessPointId: ${test.id}
iam: ENABLED
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
std = {
source = "pulumi/std"
}
}
}
resource "aws_ecs_taskdefinition" "service" {
family = "service"
container_definitions = file("task-definitions/service.json")
volumes {
name = "service-storage"
efs_volume_configuration = {
file_system_id = fs.id
root_directory = "/opt/data"
transit_encryption = "ENABLED"
transit_encryption_port = 2999
authorization_config = {
access_point_id = test.id
iam = "ENABLED"
}
}
}
}
Example Using fsxWindowsFileServerVolumeConfiguration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const test = new aws.secretsmanager.SecretVersion("test", {
secretId: testAwsSecretsmanagerSecret.id,
secretString: JSON.stringify({
username: "admin",
password: testAwsDirectoryServiceDirectory.password,
}),
});
const service = new aws.ecs.TaskDefinition("service", {
family: "service",
containerDefinitions: std.file({
input: "task-definitions/service.json",
}).then(invoke => invoke.result),
volumes: [{
name: "service-storage",
fsxWindowsFileServerVolumeConfiguration: {
fileSystemId: testAwsFsxWindowsFileSystem.id,
rootDirectory: "\\data",
authorizationConfig: {
credentialsParameter: test.arn,
domain: testAwsDirectoryServiceDirectory.name,
},
},
}],
});
import pulumi
import json
import pulumi_aws as aws
import pulumi_std as std
test = aws.secretsmanager.SecretVersion("test",
secret_id=test_aws_secretsmanager_secret["id"],
secret_string=json.dumps({
"username": "admin",
"password": test_aws_directory_service_directory["password"],
}))
service = aws.ecs.TaskDefinition("service",
family="service",
container_definitions=std.file(input="task-definitions/service.json").result,
volumes=[{
"name": "service-storage",
"fsx_windows_file_server_volume_configuration": {
"file_system_id": test_aws_fsx_windows_file_system["id"],
"root_directory": "\\data",
"authorization_config": {
"credentials_parameter": test.arn,
"domain": test_aws_directory_service_directory["name"],
},
},
}])
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/secretsmanager"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal(map[string]interface{}{
"username": "admin",
"password": testAwsDirectoryServiceDirectory.Password,
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
test, err := secretsmanager.NewSecretVersion(ctx, "test", &secretsmanager.SecretVersionArgs{
SecretId: pulumi.Any(testAwsSecretsmanagerSecret.Id),
SecretString: pulumi.String(json0),
})
if err != nil {
return err
}
invokeFile, err := std.File(ctx, &std.FileArgs{
Input: "task-definitions/service.json",
}, nil)
if err != nil {
return err
}
_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
Family: pulumi.String("service"),
ContainerDefinitions: pulumi.String(invokeFile.Result),
Volumes: ecs.TaskDefinitionVolumeArray{
&ecs.TaskDefinitionVolumeArgs{
Name: pulumi.String("service-storage"),
FsxWindowsFileServerVolumeConfiguration: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{
FileSystemId: pulumi.Any(testAwsFsxWindowsFileSystem.Id),
RootDirectory: pulumi.String("\\data"),
AuthorizationConfig: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{
CredentialsParameter: test.Arn,
Domain: pulumi.Any(testAwsDirectoryServiceDirectory.Name),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var test = new Aws.SecretsManager.SecretVersion("test", new()
{
SecretId = testAwsSecretsmanagerSecret.Id,
SecretString = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["username"] = "admin",
["password"] = testAwsDirectoryServiceDirectory.Password,
}),
});
var service = new Aws.Ecs.TaskDefinition("service", new()
{
Family = "service",
ContainerDefinitions = Std.File.Invoke(new()
{
Input = "task-definitions/service.json",
}).Apply(invoke => invoke.Result),
Volumes = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
{
Name = "service-storage",
FsxWindowsFileServerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs
{
FileSystemId = testAwsFsxWindowsFileSystem.Id,
RootDirectory = "\\data",
AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs
{
CredentialsParameter = test.Arn,
Domain = testAwsDirectoryServiceDirectory.Name,
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.secretsmanager.SecretVersion;
import com.pulumi.aws.secretsmanager.SecretVersionArgs;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new SecretVersion("test", SecretVersionArgs.builder()
.secretId(testAwsSecretsmanagerSecret.id())
.secretString(serializeJson(
jsonObject(
jsonProperty("username", "admin"),
jsonProperty("password", testAwsDirectoryServiceDirectory.password())
)))
.build());
var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
.family("service")
.containerDefinitions(StdFunctions.file(FileArgs.builder()
.input("task-definitions/service.json")
.build()).result())
.volumes(TaskDefinitionVolumeArgs.builder()
.name("service-storage")
.fsxWindowsFileServerVolumeConfiguration(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs.builder()
.fileSystemId(testAwsFsxWindowsFileSystem.id())
.rootDirectory("\\data")
.authorizationConfig(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs.builder()
.credentialsParameter(test.arn())
.domain(testAwsDirectoryServiceDirectory.name())
.build())
.build())
.build())
.build());
}
}
resources:
service:
type: aws:ecs:TaskDefinition
properties:
family: service
containerDefinitions:
fn::invoke:
function: std:file
arguments:
input: task-definitions/service.json
return: result
volumes:
- name: service-storage
fsxWindowsFileServerVolumeConfiguration:
fileSystemId: ${testAwsFsxWindowsFileSystem.id}
rootDirectory: \data
authorizationConfig:
credentialsParameter: ${test.arn}
domain: ${testAwsDirectoryServiceDirectory.name}
test:
type: aws:secretsmanager:SecretVersion
properties:
secretId: ${testAwsSecretsmanagerSecret.id}
secretString:
fn::toJSON:
username: admin
password: ${testAwsDirectoryServiceDirectory.password}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
std = {
source = "pulumi/std"
}
}
}
resource "aws_ecs_taskdefinition" "service" {
family = "service"
container_definitions = file("task-definitions/service.json")
volumes {
name = "service-storage"
fsx_windows_file_server_volume_configuration = {
file_system_id = testAwsFsxWindowsFileSystem.id
root_directory = "\\data"
authorization_config = {
credentials_parameter = aws_secretsmanager_secretversion.test.arn
domain = testAwsDirectoryServiceDirectory.name
}
}
}
}
resource "aws_secretsmanager_secretversion" "test" {
secret_id = testAwsSecretsmanagerSecret.id
secret_string = jsonencode({
"username" = "admin"
"password" = testAwsDirectoryServiceDirectory.password
})
}
Example Using containerDefinitions
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.ecs.TaskDefinition("test", {
family: "test",
containerDefinitions: `[
{
"cpu": 10,
"command": ["sleep", "10"],
"entryPoint": ["/"],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"essential": true,
"image": "jenkins",
"memory": 128,
"name": "jenkins",
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080
}
]
}
]
`,
});
import pulumi
import pulumi_aws as aws
test = aws.ecs.TaskDefinition("test",
family="test",
container_definitions="""[
{
"cpu": 10,
"command": ["sleep", "10"],
"entryPoint": ["/"],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"essential": true,
"image": "jenkins",
"memory": 128,
"name": "jenkins",
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080
}
]
}
]
""")
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ecs.NewTaskDefinition(ctx, "test", &ecs.TaskDefinitionArgs{
Family: pulumi.String("test"),
ContainerDefinitions: pulumi.String(`[
{
"cpu": 10,
"command": ["sleep", "10"],
"entryPoint": ["/"],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"essential": true,
"image": "jenkins",
"memory": 128,
"name": "jenkins",
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080
}
]
}
]
`),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.Ecs.TaskDefinition("test", new()
{
Family = "test",
ContainerDefinitions = @"[
{
""cpu"": 10,
""command"": [""sleep"", ""10""],
""entryPoint"": [""/""],
""environment"": [
{""name"": ""VARNAME"", ""value"": ""VARVAL""}
],
""essential"": true,
""image"": ""jenkins"",
""memory"": 128,
""name"": ""jenkins"",
""portMappings"": [
{
""containerPort"": 80,
""hostPort"": 8080
}
]
}
]
",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new TaskDefinition("test", TaskDefinitionArgs.builder()
.family("test")
.containerDefinitions("""
[
{
"cpu": 10,
"command": ["sleep", "10"],
"entryPoint": ["/"],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"essential": true,
"image": "jenkins",
"memory": 128,
"name": "jenkins",
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080
}
]
}
]
""")
.build());
}
}
resources:
test:
type: aws:ecs:TaskDefinition
properties:
family: test
containerDefinitions: |
[
{
"cpu": 10,
"command": ["sleep", "10"],
"entryPoint": ["/"],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"essential": true,
"image": "jenkins",
"memory": 128,
"name": "jenkins",
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080
}
]
}
]
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_ecs_taskdefinition" "test" {
family = "test"
container_definitions = "[\n {\n \"cpu\": 10,\n \"command\": [\"sleep\", \"10\"],\n \"entryPoint\": [\"/\"],\n \"environment\": [\n {\"name\": \"VARNAME\", \"value\": \"VARVAL\"}\n ],\n \"essential\": true,\n \"image\": \"jenkins\",\n \"memory\": 128,\n \"name\": \"jenkins\",\n \"portMappings\": [\n {\n \"containerPort\": 80,\n \"hostPort\": 8080\n }\n ]\n }\n]\n"
}
Example Using runtimePlatform and fargate
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.ecs.TaskDefinition("test", {
family: "test",
requiresCompatibilities: ["FARGATE"],
networkMode: "awsvpc",
cpu: "1024",
memory: "2048",
containerDefinitions: `[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
`,
runtimePlatform: {
operatingSystemFamily: "WINDOWS_SERVER_2019_CORE",
cpuArchitecture: "X86_64",
},
});
import pulumi
import pulumi_aws as aws
test = aws.ecs.TaskDefinition("test",
family="test",
requires_compatibilities=["FARGATE"],
network_mode="awsvpc",
cpu="1024",
memory="2048",
container_definitions="""[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
""",
runtime_platform={
"operating_system_family": "WINDOWS_SERVER_2019_CORE",
"cpu_architecture": "X86_64",
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ecs.NewTaskDefinition(ctx, "test", &ecs.TaskDefinitionArgs{
Family: pulumi.String("test"),
RequiresCompatibilities: pulumi.StringArray{
pulumi.String("FARGATE"),
},
NetworkMode: pulumi.String("awsvpc"),
Cpu: pulumi.String("1024"),
Memory: pulumi.String("2048"),
ContainerDefinitions: pulumi.String(`[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
`),
RuntimePlatform: &ecs.TaskDefinitionRuntimePlatformArgs{
OperatingSystemFamily: pulumi.String("WINDOWS_SERVER_2019_CORE"),
CpuArchitecture: pulumi.String("X86_64"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.Ecs.TaskDefinition("test", new()
{
Family = "test",
RequiresCompatibilities = new[]
{
"FARGATE",
},
NetworkMode = "awsvpc",
Cpu = "1024",
Memory = "2048",
ContainerDefinitions = @"[
{
""name"": ""iis"",
""image"": ""mcr.microsoft.com/windows/servercore/iis"",
""cpu"": 1024,
""memory"": 2048,
""essential"": true
}
]
",
RuntimePlatform = new Aws.Ecs.Inputs.TaskDefinitionRuntimePlatformArgs
{
OperatingSystemFamily = "WINDOWS_SERVER_2019_CORE",
CpuArchitecture = "X86_64",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionRuntimePlatformArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new TaskDefinition("test", TaskDefinitionArgs.builder()
.family("test")
.requiresCompatibilities("FARGATE")
.networkMode("awsvpc")
.cpu("1024")
.memory("2048")
.containerDefinitions("""
[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
""")
.runtimePlatform(TaskDefinitionRuntimePlatformArgs.builder()
.operatingSystemFamily("WINDOWS_SERVER_2019_CORE")
.cpuArchitecture("X86_64")
.build())
.build());
}
}
resources:
test:
type: aws:ecs:TaskDefinition
properties:
family: test
requiresCompatibilities:
- FARGATE
networkMode: awsvpc
cpu: 1024
memory: 2048
containerDefinitions: |
[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
runtimePlatform:
operatingSystemFamily: WINDOWS_SERVER_2019_CORE
cpuArchitecture: X86_64
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_ecs_taskdefinition" "test" {
family = "test"
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
cpu = 1024
memory = 2048
container_definitions = "[\n {\n \"name\": \"iis\",\n \"image\": \"mcr.microsoft.com/windows/servercore/iis\",\n \"cpu\": 1024,\n \"memory\": 2048,\n \"essential\": true\n }\n]\n"
runtime_platform = {
operating_system_family = "WINDOWS_SERVER_2019_CORE"
cpu_architecture = "X86_64"
}
}
Create TaskDefinition Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
@overload
def TaskDefinition(resource_name: str,
args: TaskDefinitionArgs,
opts: Optional[ResourceOptions] = None)
@overload
def TaskDefinition(resource_name: str,
opts: Optional[ResourceOptions] = None,
family: Optional[str] = None,
container_definitions: Optional[str] = None,
placement_constraints: Optional[Sequence[TaskDefinitionPlacementConstraintArgs]] = None,
proxy_configuration: Optional[TaskDefinitionProxyConfigurationArgs] = None,
execution_role_arn: Optional[str] = None,
enable_fault_injection: Optional[bool] = None,
ipc_mode: Optional[str] = None,
memory: Optional[str] = None,
network_mode: Optional[str] = None,
pid_mode: Optional[str] = None,
cpu: Optional[str] = None,
ephemeral_storage: Optional[TaskDefinitionEphemeralStorageArgs] = None,
region: Optional[str] = None,
requires_compatibilities: Optional[Sequence[str]] = None,
runtime_platform: Optional[TaskDefinitionRuntimePlatformArgs] = None,
skip_destroy: Optional[bool] = None,
tags: Optional[Mapping[str, str]] = None,
task_role_arn: Optional[str] = None,
track_latest: Optional[bool] = None,
volumes: Optional[Sequence[TaskDefinitionVolumeArgs]] = None)
public TaskDefinition(String name, TaskDefinitionArgs args)
public TaskDefinition(String name, TaskDefinitionArgs args, CustomResourceOptions options)
type: aws:ecs:TaskDefinition
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "aws_ecs_task_definition" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args TaskDefinitionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args TaskDefinitionArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args TaskDefinitionArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args TaskDefinitionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args TaskDefinitionArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var taskDefinitionResource = new Aws.Ecs.TaskDefinition("taskDefinitionResource", new()
{
Family = "string",
ContainerDefinitions = "string",
PlacementConstraints = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionPlacementConstraintArgs
{
Type = "string",
Expression = "string",
},
},
ProxyConfiguration = new Aws.Ecs.Inputs.TaskDefinitionProxyConfigurationArgs
{
ContainerName = "string",
Properties =
{
{ "string", "string" },
},
Type = "string",
},
ExecutionRoleArn = "string",
EnableFaultInjection = false,
IpcMode = "string",
Memory = "string",
NetworkMode = "string",
PidMode = "string",
Cpu = "string",
EphemeralStorage = new Aws.Ecs.Inputs.TaskDefinitionEphemeralStorageArgs
{
SizeInGib = 0,
},
Region = "string",
RequiresCompatibilities = new[]
{
"string",
},
RuntimePlatform = new Aws.Ecs.Inputs.TaskDefinitionRuntimePlatformArgs
{
CpuArchitecture = "string",
OperatingSystemFamily = "string",
},
SkipDestroy = false,
Tags =
{
{ "string", "string" },
},
TaskRoleArn = "string",
TrackLatest = false,
Volumes = new[]
{
new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
{
Name = "string",
ConfigureAtLaunch = false,
DockerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeDockerVolumeConfigurationArgs
{
Autoprovision = false,
Driver = "string",
DriverOpts =
{
{ "string", "string" },
},
Labels =
{
{ "string", "string" },
},
Scope = "string",
},
EfsVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs
{
FileSystemId = "string",
AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs
{
AccessPointId = "string",
Iam = "string",
},
RootDirectory = "string",
TransitEncryption = "string",
TransitEncryptionPort = 0,
},
FsxWindowsFileServerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs
{
AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs
{
CredentialsParameter = "string",
Domain = "string",
},
FileSystemId = "string",
RootDirectory = "string",
},
HostPath = "string",
S3filesVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeS3filesVolumeConfigurationArgs
{
FileSystemArn = "string",
AccessPointArn = "string",
RootDirectory = "string",
TransitEncryptionPort = 0,
},
},
},
});
example, err := ecs.NewTaskDefinition(ctx, "taskDefinitionResource", &ecs.TaskDefinitionArgs{
Family: pulumi.String("string"),
ContainerDefinitions: pulumi.String("string"),
PlacementConstraints: ecs.TaskDefinitionPlacementConstraintArray{
&ecs.TaskDefinitionPlacementConstraintArgs{
Type: pulumi.String("string"),
Expression: pulumi.String("string"),
},
},
ProxyConfiguration: &ecs.TaskDefinitionProxyConfigurationArgs{
ContainerName: pulumi.String("string"),
Properties: pulumi.StringMap{
"string": pulumi.String("string"),
},
Type: pulumi.String("string"),
},
ExecutionRoleArn: pulumi.String("string"),
EnableFaultInjection: pulumi.Bool(false),
IpcMode: pulumi.String("string"),
Memory: pulumi.String("string"),
NetworkMode: pulumi.String("string"),
PidMode: pulumi.String("string"),
Cpu: pulumi.String("string"),
EphemeralStorage: &ecs.TaskDefinitionEphemeralStorageArgs{
SizeInGib: pulumi.Int(0),
},
Region: pulumi.String("string"),
RequiresCompatibilities: pulumi.StringArray{
pulumi.String("string"),
},
RuntimePlatform: &ecs.TaskDefinitionRuntimePlatformArgs{
CpuArchitecture: pulumi.String("string"),
OperatingSystemFamily: pulumi.String("string"),
},
SkipDestroy: pulumi.Bool(false),
Tags: pulumi.StringMap{
"string": pulumi.String("string"),
},
TaskRoleArn: pulumi.String("string"),
TrackLatest: pulumi.Bool(false),
Volumes: ecs.TaskDefinitionVolumeArray{
&ecs.TaskDefinitionVolumeArgs{
Name: pulumi.String("string"),
ConfigureAtLaunch: pulumi.Bool(false),
DockerVolumeConfiguration: &ecs.TaskDefinitionVolumeDockerVolumeConfigurationArgs{
Autoprovision: pulumi.Bool(false),
Driver: pulumi.String("string"),
DriverOpts: pulumi.StringMap{
"string": pulumi.String("string"),
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Scope: pulumi.String("string"),
},
EfsVolumeConfiguration: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationArgs{
FileSystemId: pulumi.String("string"),
AuthorizationConfig: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{
AccessPointId: pulumi.String("string"),
Iam: pulumi.String("string"),
},
RootDirectory: pulumi.String("string"),
TransitEncryption: pulumi.String("string"),
TransitEncryptionPort: pulumi.Int(0),
},
FsxWindowsFileServerVolumeConfiguration: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{
AuthorizationConfig: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{
CredentialsParameter: pulumi.String("string"),
Domain: pulumi.String("string"),
},
FileSystemId: pulumi.String("string"),
RootDirectory: pulumi.String("string"),
},
HostPath: pulumi.String("string"),
S3filesVolumeConfiguration: &ecs.TaskDefinitionVolumeS3filesVolumeConfigurationArgs{
FileSystemArn: pulumi.String("string"),
AccessPointArn: pulumi.String("string"),
RootDirectory: pulumi.String("string"),
TransitEncryptionPort: pulumi.Int(0),
},
},
},
})
resource "aws_ecs_task_definition" "taskDefinitionResource" {
lifecycle {
create_before_destroy = true
}
family = "string"
container_definitions = "string"
placement_constraints {
type = "string"
expression = "string"
}
proxy_configuration = {
container_name = "string"
properties = {
"string" = "string"
}
type = "string"
}
execution_role_arn = "string"
enable_fault_injection = false
ipc_mode = "string"
memory = "string"
network_mode = "string"
pid_mode = "string"
cpu = "string"
ephemeral_storage = {
size_in_gib = 0
}
region = "string"
requires_compatibilities = ["string"]
runtime_platform = {
cpu_architecture = "string"
operating_system_family = "string"
}
skip_destroy = false
tags = {
"string" = "string"
}
task_role_arn = "string"
track_latest = false
volumes {
name = "string"
configure_at_launch = false
docker_volume_configuration = {
autoprovision = false
driver = "string"
driver_opts = {
"string" = "string"
}
labels = {
"string" = "string"
}
scope = "string"
}
efs_volume_configuration = {
file_system_id = "string"
authorization_config = {
access_point_id = "string"
iam = "string"
}
root_directory = "string"
transit_encryption = "string"
transit_encryption_port = 0
}
fsx_windows_file_server_volume_configuration = {
authorization_config = {
credentials_parameter = "string"
domain = "string"
}
file_system_id = "string"
root_directory = "string"
}
host_path = "string"
s3files_volume_configuration = {
file_system_arn = "string"
access_point_arn = "string"
root_directory = "string"
transit_encryption_port = 0
}
}
}
var taskDefinitionResource = new TaskDefinition("taskDefinitionResource", TaskDefinitionArgs.builder()
.family("string")
.containerDefinitions("string")
.placementConstraints(TaskDefinitionPlacementConstraintArgs.builder()
.type("string")
.expression("string")
.build())
.proxyConfiguration(TaskDefinitionProxyConfigurationArgs.builder()
.containerName("string")
.properties(Map.of("string", "string"))
.type("string")
.build())
.executionRoleArn("string")
.enableFaultInjection(false)
.ipcMode("string")
.memory("string")
.networkMode("string")
.pidMode("string")
.cpu("string")
.ephemeralStorage(TaskDefinitionEphemeralStorageArgs.builder()
.sizeInGib(0)
.build())
.region("string")
.requiresCompatibilities("string")
.runtimePlatform(TaskDefinitionRuntimePlatformArgs.builder()
.cpuArchitecture("string")
.operatingSystemFamily("string")
.build())
.skipDestroy(false)
.tags(Map.of("string", "string"))
.taskRoleArn("string")
.trackLatest(false)
.volumes(TaskDefinitionVolumeArgs.builder()
.name("string")
.configureAtLaunch(false)
.dockerVolumeConfiguration(TaskDefinitionVolumeDockerVolumeConfigurationArgs.builder()
.autoprovision(false)
.driver("string")
.driverOpts(Map.of("string", "string"))
.labels(Map.of("string", "string"))
.scope("string")
.build())
.efsVolumeConfiguration(TaskDefinitionVolumeEfsVolumeConfigurationArgs.builder()
.fileSystemId("string")
.authorizationConfig(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs.builder()
.accessPointId("string")
.iam("string")
.build())
.rootDirectory("string")
.transitEncryption("string")
.transitEncryptionPort(0)
.build())
.fsxWindowsFileServerVolumeConfiguration(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs.builder()
.authorizationConfig(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs.builder()
.credentialsParameter("string")
.domain("string")
.build())
.fileSystemId("string")
.rootDirectory("string")
.build())
.hostPath("string")
.s3filesVolumeConfiguration(TaskDefinitionVolumeS3filesVolumeConfigurationArgs.builder()
.fileSystemArn("string")
.accessPointArn("string")
.rootDirectory("string")
.transitEncryptionPort(0)
.build())
.build())
.build());
task_definition_resource = aws.ecs.TaskDefinition("taskDefinitionResource",
family="string",
container_definitions="string",
placement_constraints=[{
"type": "string",
"expression": "string",
}],
proxy_configuration={
"container_name": "string",
"properties": {
"string": "string",
},
"type": "string",
},
execution_role_arn="string",
enable_fault_injection=False,
ipc_mode="string",
memory="string",
network_mode="string",
pid_mode="string",
cpu="string",
ephemeral_storage={
"size_in_gib": 0,
},
region="string",
requires_compatibilities=["string"],
runtime_platform={
"cpu_architecture": "string",
"operating_system_family": "string",
},
skip_destroy=False,
tags={
"string": "string",
},
task_role_arn="string",
track_latest=False,
volumes=[{
"name": "string",
"configure_at_launch": False,
"docker_volume_configuration": {
"autoprovision": False,
"driver": "string",
"driver_opts": {
"string": "string",
},
"labels": {
"string": "string",
},
"scope": "string",
},
"efs_volume_configuration": {
"file_system_id": "string",
"authorization_config": {
"access_point_id": "string",
"iam": "string",
},
"root_directory": "string",
"transit_encryption": "string",
"transit_encryption_port": 0,
},
"fsx_windows_file_server_volume_configuration": {
"authorization_config": {
"credentials_parameter": "string",
"domain": "string",
},
"file_system_id": "string",
"root_directory": "string",
},
"host_path": "string",
"s3files_volume_configuration": {
"file_system_arn": "string",
"access_point_arn": "string",
"root_directory": "string",
"transit_encryption_port": 0,
},
}])
const taskDefinitionResource = new aws.ecs.TaskDefinition("taskDefinitionResource", {
family: "string",
containerDefinitions: "string",
placementConstraints: [{
type: "string",
expression: "string",
}],
proxyConfiguration: {
containerName: "string",
properties: {
string: "string",
},
type: "string",
},
executionRoleArn: "string",
enableFaultInjection: false,
ipcMode: "string",
memory: "string",
networkMode: "string",
pidMode: "string",
cpu: "string",
ephemeralStorage: {
sizeInGib: 0,
},
region: "string",
requiresCompatibilities: ["string"],
runtimePlatform: {
cpuArchitecture: "string",
operatingSystemFamily: "string",
},
skipDestroy: false,
tags: {
string: "string",
},
taskRoleArn: "string",
trackLatest: false,
volumes: [{
name: "string",
configureAtLaunch: false,
dockerVolumeConfiguration: {
autoprovision: false,
driver: "string",
driverOpts: {
string: "string",
},
labels: {
string: "string",
},
scope: "string",
},
efsVolumeConfiguration: {
fileSystemId: "string",
authorizationConfig: {
accessPointId: "string",
iam: "string",
},
rootDirectory: "string",
transitEncryption: "string",
transitEncryptionPort: 0,
},
fsxWindowsFileServerVolumeConfiguration: {
authorizationConfig: {
credentialsParameter: "string",
domain: "string",
},
fileSystemId: "string",
rootDirectory: "string",
},
hostPath: "string",
s3filesVolumeConfiguration: {
fileSystemArn: "string",
accessPointArn: "string",
rootDirectory: "string",
transitEncryptionPort: 0,
},
}],
});
type: aws:ecs:TaskDefinition
properties:
containerDefinitions: string
cpu: string
enableFaultInjection: false
ephemeralStorage:
sizeInGib: 0
executionRoleArn: string
family: string
ipcMode: string
memory: string
networkMode: string
pidMode: string
placementConstraints:
- expression: string
type: string
proxyConfiguration:
containerName: string
properties:
string: string
type: string
region: string
requiresCompatibilities:
- string
runtimePlatform:
cpuArchitecture: string
operatingSystemFamily: string
skipDestroy: false
tags:
string: string
taskRoleArn: string
trackLatest: false
volumes:
- configureAtLaunch: false
dockerVolumeConfiguration:
autoprovision: false
driver: string
driverOpts:
string: string
labels:
string: string
scope: string
efsVolumeConfiguration:
authorizationConfig:
accessPointId: string
iam: string
fileSystemId: string
rootDirectory: string
transitEncryption: string
transitEncryptionPort: 0
fsxWindowsFileServerVolumeConfiguration:
authorizationConfig:
credentialsParameter: string
domain: string
fileSystemId: string
rootDirectory: string
hostPath: string
name: string
s3filesVolumeConfiguration:
accessPointArn: string
fileSystemArn: string
rootDirectory: string
transitEncryptionPort: 0
TaskDefinition Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The TaskDefinition resource accepts the following input properties:
- Container Definitions string
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- Family string
Unique name for your task definition.
The following arguments are optional:
- Cpu string
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Enable Fault Injection bool
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - Ephemeral Storage Task Definition Ephemeral Storage
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- Execution Role Arn string
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- Ipc Mode string
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - Memory string
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Network Mode string
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - Pid Mode string
- Process namespace to use for the containers in the task. Valid values: host
,task`. - Placement Constraints List<Task Definition Placement Constraint>
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - Proxy Configuration Task Definition Proxy Configuration
- Configuration block for the App Mesh proxy. Detailed below.
- Region string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- Requires Compatibilities List<string>
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - Runtime Platform Task Definition Runtime Platform
- Configuration block for runtimePlatform that containers in your task may use.
- Skip Destroy bool
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - Tags Dictionary<string, string>
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Task Role Arn string
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- Track Latest bool
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - Volumes List<Task Definition Volume>
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- Container Definitions string
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- Family string
Unique name for your task definition.
The following arguments are optional:
- Cpu string
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Enable Fault Injection bool
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - Ephemeral Storage Task Definition Ephemeral Storage Args
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- Execution Role Arn string
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- Ipc Mode string
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - Memory string
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Network Mode string
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - Pid Mode string
- Process namespace to use for the containers in the task. Valid values: host
,task`. - Placement Constraints []Task Definition Placement Constraint Args
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - Proxy Configuration Task Definition Proxy Configuration Args
- Configuration block for the App Mesh proxy. Detailed below.
- Region string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- Requires Compatibilities []string
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - Runtime Platform Task Definition Runtime Platform Args
- Configuration block for runtimePlatform that containers in your task may use.
- Skip Destroy bool
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - Tags map[string]string
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Task Role Arn string
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- Track Latest bool
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - Volumes []Task Definition Volume Args
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- container_ definitions string
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- family string
Unique name for your task definition.
The following arguments are optional:
- cpu string
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - enable_ fault_ injection bool
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - ephemeral_ storage object
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- execution_ role_ arn string
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- ipc_ mode string
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - memory string
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - network_ mode string
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - pid_ mode string
- Process namespace to use for the containers in the task. Valid values: host
,task`. - placement_ constraints list(object)
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - proxy_ configuration object
- Configuration block for the App Mesh proxy. Detailed below.
- region string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- requires_ compatibilities list(string)
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - runtime_ platform object
- Configuration block for runtimePlatform that containers in your task may use.
- skip_ destroy bool
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - tags map(string)
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task_ role_ arn string
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- track_ latest bool
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - volumes list(object)
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- container Definitions String
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- family String
Unique name for your task definition.
The following arguments are optional:
- cpu String
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - enable Fault Injection Boolean
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - ephemeral Storage Task Definition Ephemeral Storage
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- execution Role Arn String
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- ipc Mode String
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - memory String
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - network Mode String
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - pid Mode String
- Process namespace to use for the containers in the task. Valid values: host
,task`. - placement Constraints List<Task Definition Placement Constraint>
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - proxy Configuration Task Definition Proxy Configuration
- Configuration block for the App Mesh proxy. Detailed below.
- region String
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- requires Compatibilities List<String>
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - runtime Platform Task Definition Runtime Platform
- Configuration block for runtimePlatform that containers in your task may use.
- skip Destroy Boolean
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - tags Map<String,String>
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task Role Arn String
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- track Latest Boolean
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - volumes List<Task Definition Volume>
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- container Definitions string
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- family string
Unique name for your task definition.
The following arguments are optional:
- cpu string
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - enable Fault Injection boolean
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - ephemeral Storage Task Definition Ephemeral Storage
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- execution Role Arn string
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- ipc Mode string
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - memory string
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - network Mode string
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - pid Mode string
- Process namespace to use for the containers in the task. Valid values: host
,task`. - placement Constraints Task Definition Placement Constraint[]
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - proxy Configuration Task Definition Proxy Configuration
- Configuration block for the App Mesh proxy. Detailed below.
- region string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- requires Compatibilities string[]
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - runtime Platform Task Definition Runtime Platform
- Configuration block for runtimePlatform that containers in your task may use.
- skip Destroy boolean
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - tags {[key: string]: string}
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task Role Arn string
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- track Latest boolean
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - volumes Task Definition Volume[]
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- container_ definitions str
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- family str
Unique name for your task definition.
The following arguments are optional:
- cpu str
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - enable_ fault_ injection bool
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - ephemeral_ storage Task Definition Ephemeral Storage Args
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- execution_ role_ arn str
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- ipc_ mode str
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - memory str
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - network_ mode str
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - pid_ mode str
- Process namespace to use for the containers in the task. Valid values: host
,task`. - placement_ constraints Sequence[Task Definition Placement Constraint Args]
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - proxy_ configuration Task Definition Proxy Configuration Args
- Configuration block for the App Mesh proxy. Detailed below.
- region str
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- requires_ compatibilities Sequence[str]
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - runtime_ platform Task Definition Runtime Platform Args
- Configuration block for runtimePlatform that containers in your task may use.
- skip_ destroy bool
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - tags Mapping[str, str]
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task_ role_ arn str
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- track_ latest bool
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - volumes Sequence[Task Definition Volume Args]
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- container Definitions String
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- family String
Unique name for your task definition.
The following arguments are optional:
- cpu String
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - enable Fault Injection Boolean
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - ephemeral Storage Property Map
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- execution Role Arn String
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- ipc Mode String
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - memory String
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - network Mode String
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - pid Mode String
- Process namespace to use for the containers in the task. Valid values: host
,task`. - placement Constraints List<Property Map>
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - proxy Configuration Property Map
- Configuration block for the App Mesh proxy. Detailed below.
- region String
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- requires Compatibilities List<String>
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - runtime Platform Property Map
- Configuration block for runtimePlatform that containers in your task may use.
- skip Destroy Boolean
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - tags Map<String>
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task Role Arn String
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- track Latest Boolean
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - volumes List<Property Map>
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
Outputs
All input properties are implicitly available as output properties. Additionally, the TaskDefinition resource produces the following output properties:
- Arn string
- Full ARN of the Task Definition (including both
familyandrevision). - Arn Without Revision string
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Id string
- The provider-assigned unique ID for this managed resource.
- Revision int
- Revision of the task in a particular family.
- Tags All Dictionary<string, string>
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
- Arn string
- Full ARN of the Task Definition (including both
familyandrevision). - Arn Without Revision string
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Id string
- The provider-assigned unique ID for this managed resource.
- Revision int
- Revision of the task in a particular family.
- Tags All map[string]string
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
- arn string
- Full ARN of the Task Definition (including both
familyandrevision). - arn_ without_ revision string
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id string
- The provider-assigned unique ID for this managed resource.
- revision number
- Revision of the task in a particular family.
- tags_ all map(string)
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
- arn String
- Full ARN of the Task Definition (including both
familyandrevision). - arn Without Revision String
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id String
- The provider-assigned unique ID for this managed resource.
- revision Integer
- Revision of the task in a particular family.
- tags All Map<String,String>
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
- arn string
- Full ARN of the Task Definition (including both
familyandrevision). - arn Without Revision string
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id string
- The provider-assigned unique ID for this managed resource.
- revision number
- Revision of the task in a particular family.
- tags All {[key: string]: string}
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
- arn str
- Full ARN of the Task Definition (including both
familyandrevision). - arn_ without_ revision str
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id str
- The provider-assigned unique ID for this managed resource.
- revision int
- Revision of the task in a particular family.
- tags_ all Mapping[str, str]
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
- arn String
- Full ARN of the Task Definition (including both
familyandrevision). - arn Without Revision String
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id String
- The provider-assigned unique ID for this managed resource.
- revision Number
- Revision of the task in a particular family.
- tags All Map<String>
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.
Look up Existing TaskDefinition Resource
Get an existing TaskDefinition resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
arn: Optional[str] = None,
arn_without_revision: Optional[str] = None,
container_definitions: Optional[str] = None,
cpu: Optional[str] = None,
enable_fault_injection: Optional[bool] = None,
ephemeral_storage: Optional[TaskDefinitionEphemeralStorageArgs] = None,
execution_role_arn: Optional[str] = None,
family: Optional[str] = None,
ipc_mode: Optional[str] = None,
memory: Optional[str] = None,
network_mode: Optional[str] = None,
pid_mode: Optional[str] = None,
placement_constraints: Optional[Sequence[TaskDefinitionPlacementConstraintArgs]] = None,
proxy_configuration: Optional[TaskDefinitionProxyConfigurationArgs] = None,
region: Optional[str] = None,
requires_compatibilities: Optional[Sequence[str]] = None,
revision: Optional[int] = None,
runtime_platform: Optional[TaskDefinitionRuntimePlatformArgs] = None,
skip_destroy: Optional[bool] = None,
tags: Optional[Mapping[str, str]] = None,
tags_all: Optional[Mapping[str, str]] = None,
task_role_arn: Optional[str] = None,
track_latest: Optional[bool] = None,
volumes: Optional[Sequence[TaskDefinitionVolumeArgs]] = None) -> TaskDefinitionpublic static TaskDefinition get(String name, Output<String> id, TaskDefinitionState state, CustomResourceOptions options)resources: _: type: aws:ecs:TaskDefinition get: id: ${id}import {
to = aws_ecs_task_definition.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Arn string
- Full ARN of the Task Definition (including both
familyandrevision). - Arn Without Revision string
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Container Definitions string
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- Cpu string
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Enable Fault Injection bool
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - Ephemeral Storage Task Definition Ephemeral Storage
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- Execution Role Arn string
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- Family string
Unique name for your task definition.
The following arguments are optional:
- Ipc Mode string
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - Memory string
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Network Mode string
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - Pid Mode string
- Process namespace to use for the containers in the task. Valid values: host
,task`. - Placement Constraints List<Task Definition Placement Constraint>
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - Proxy Configuration Task Definition Proxy Configuration
- Configuration block for the App Mesh proxy. Detailed below.
- Region string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- Requires Compatibilities List<string>
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - Revision int
- Revision of the task in a particular family.
- Runtime Platform Task Definition Runtime Platform
- Configuration block for runtimePlatform that containers in your task may use.
- Skip Destroy bool
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - Tags Dictionary<string, string>
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags All Dictionary<string, string>
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block. - Task Role Arn string
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- Track Latest bool
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - Volumes List<Task Definition Volume>
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.
- Arn string
- Full ARN of the Task Definition (including both
familyandrevision). - Arn Without Revision string
- ARN of the Task Definition with the trailing
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Container Definitions string
- List of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
- Cpu string
- Number of cpu units used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Enable Fault Injection bool
- Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is
false. - Ephemeral Storage Task Definition Ephemeral Storage Args
- Amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
- Execution Role Arn string
- ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
- Family string
Unique name for your task definition.
The following arguments are optional:
- Ipc Mode string
- IPC resource namespace to be used for the containers in the task. Valid values:
host,task,none. - Memory string
- Amount (in MiB) of memory used by the task. If the
requiresCompatibilitiesisFARGATEthis field is required. - Network Mode string
- Docker networking mode to use for the containers in the task. Valid values:
awsvpc,bridge,host, andnone. - Pid Mode string
- Process namespace to use for the containers in the task. Valid values: host
,task`. - Placement Constraints []Task Definition Placement Constraint Args
- Configuration block for rules that are taken into consideration during task placement. Maximum number of
placementConstraintsis10. Detailed below. - Proxy Configuration Task Definition Proxy Configuration Args
- Configuration block for the App Mesh proxy. Detailed below.
- Region string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- Requires Compatibilities []string
- Set of launch types required by the task. Valid values:
EC2,EXTERNAL,FARGATE,MANAGED_INSTANCES. - Revision int
- Revision of the task in a particular family.
- Runtime Platform Task Definition Runtime Platform Args
- Configuration block for runtimePlatform that containers in your task may use.
- Skip Destroy bool
- Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is
false. - Tags map[string]string
- Key-value map of resource tags. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags All map[string]string
- Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block. - Task Role Arn string
- ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
- Track Latest bool
- Whether should track latest
ACTIVEtask definition on AWS or the one created with the resource stored in state. Default isfalse. Useful in the event the task definition is modified outside of this resource. - Volumes []Task Definition Volume Args
Repeatable configuration block for volumes that containers in your task may use. Detailed below.
NOTE: Proper escaping is required for JSON field values containing quotes (
") such asenvironmentvalues. If directly setting the JSON, they should be escaped as\"in the JSON, e.g.,"value": "I \"love\" escaped quotes". If using a variable value, they should be escaped as\\\"in the variable, e.g.,value = "I \\\"love\\\" escaped quotes"in the variable and"value": "${var.myvariable}"in the JSON.Note: Fault injection only works with tasks using the
awsvpcorhostnetwork modes. Fault injection isn't available on Windows.