AuthorizationConfig · pulumi

  1. Registry
  2. Packages
  3. AWS
  4. API Docs
  5. ecs
  6. TaskDefinition

aws logo aws logo

AWS v7.43.0, Aug 20 26

aws logo aws logo

AWS v7.43.0, Aug 20 26

Viewing docs for AWS v7.43.0
published on Thursday, Aug 20, 2026 by Pulumi

pulumi/pulumi-aws

aws logo aws logo

Viewing docs for AWS v7.43.0
published on Thursday, Aug 20, 2026 by Pulumi

pulumi/pulumi-aws

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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
Network Mode string
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
Network Mode string
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
network_ mode string
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
network Mode String
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
network Mode string
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
network_ mode str
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
network Mode String
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network 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 family and revision).
Arn Without Revision string
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration block.
Arn string
Full ARN of the Task Definition (including both family and revision).
Arn Without Revision string
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration block.
arn string
Full ARN of the Task Definition (including both family and revision).
arn_ without_ revision string
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration block.
arn String
Full ARN of the Task Definition (including both family and revision).
arn Without Revision String
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration block.
arn string
Full ARN of the Task Definition (including both family and revision).
arn Without Revision string
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration block.
arn str
Full ARN of the Task Definition (including both family and revision).
arn_ without_ revision str
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration block.
arn String
Full ARN of the Task Definition (including both family and revision).
arn Without Revision String
ARN of the Task Definition with the trailing revision removed. 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 defaultTags configuration 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) -> TaskDefinition
public 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.
The following state arguments are supported:
Arn string
Full ARN of the Task Definition (including both family and revision).
Arn Without Revision string
ARN of the Task Definition with the trailing revision removed. 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
Network Mode string
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network modes. Fault injection isn't available on Windows.

Arn string
Full ARN of the Task Definition (including both family and revision).
Arn Without Revision string
ARN of the Task Definition with the trailing revision removed. 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 requiresCompatibilities is FARGATE this 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 requiresCompatibilities is FARGATE this field is required.
Network Mode string
Docker networking mode to use for the containers in the task. Valid values: awsvpc, bridge, host, and none.
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 placementConstraints is 10. 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 defaultTags configuration 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 defaultTags configuration 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 ACTIVE task definition on AWS or the one created with the resource stored in state. Default is false. 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 as environment values. 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 awsvpc or host network modes. Fault injection isn't available on Windows.

Read the original on pulumi.com ↗