github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/website/source/docs/providers/aws/r/ecs_task_definition.html.markdown (about) 1 --- 2 layout: "aws" 3 page_title: "AWS: aws_ecs_task_definition" 4 sidebar_current: "docs-aws-resource-ecs-task-definition" 5 description: |- 6 Provides an ECS task definition. 7 --- 8 9 # aws\_ecs\_task\_definition 10 11 Provides an ECS task definition to be used in `aws_ecs_service`. 12 13 ## Example Usage 14 15 ``` 16 resource "aws_ecs_task_definition" "service" { 17 family = "service" 18 container_definitions = "${file("task-definitions/service.json")}" 19 20 volume { 21 name = "service-storage" 22 host_path = "/ecs/service-storage" 23 } 24 25 placement_constraints { 26 type = "memberOf" 27 expression = "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]" 28 } 29 } 30 ``` 31 32 The referenced `task-definitions/service.json` file contains a valid JSON document, 33 which is show below, and its content is going to be passed directly into the 34 `container_definitions` attribute as a string. Please note that this example 35 contains only a small subset of the available parameters. 36 37 ``` 38 [ 39 { 40 "name": "first", 41 "image": "service-first", 42 "cpu": 10, 43 "memory": 512, 44 "essential": true, 45 "portMappings": [ 46 { 47 "containerPort": 80, 48 "hostPort": 80 49 } 50 ] 51 }, 52 { 53 "name": "second", 54 "image": "service-second", 55 "cpu": 10, 56 "memory": 256, 57 "essential": true, 58 "portMappings": [ 59 { 60 "containerPort": 443, 61 "hostPort": 443 62 } 63 ] 64 } 65 ] 66 ``` 67 68 ## Argument Reference 69 70 The following arguments are supported: 71 72 * `family` - (Required) An unique name for your task definition. 73 * `container_definitions` - (Required) A list of valid [container definitions] 74 (http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a 75 single valid JSON document. Please note that you should only provide values that are part of the container 76 definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters] 77 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the 78 official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). 79 * `task_role_arn` - (Optional) The ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. 80 * `network_mode` - (Optional) The Docker networking mode to use for the containers in the task. The valid values are `none`, `bridge`, and `host`. 81 * `volume` - (Optional) A volume block. See below for details about what arguments are supported. 82 * `placement_constraints` - (Optional) rules that are taken into consideration during task placement. Maximum number of 83 `placement_constraints` is `10`. Defined below. 84 85 Volume block supports the following arguments: 86 87 * `name` - (Required) The name of the volume. This name is referenced in the `sourceVolume` 88 parameter of container definition in the `mountPoints` section. 89 * `host_path` - (Optional) The path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished. 90 91 ## placement_constraints 92 93 `placement_constraints` support the following: 94 95 * `type` - (Required) The type of constraint. Use `memberOf` to restrict selection to a group of valid candidates. 96 Note that `distinctInstance` is not supported in task definitions. 97 * `expression` - (Optional) Cluster Query Language expression to apply to the constraint. 98 For more information, see [Cluster Query Language in the Amazon EC2 Container 99 Service Developer 100 Guide](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). 101 102 103 ## Attributes Reference 104 105 The following attributes are exported: 106 107 * `arn` - Full ARN of the Task Definition (including both `family` and `revision`). 108 * `family` - The family of the Task Definition. 109 * `revision` - The revision of the task in a particular family.