Files
opentf/website/source/docs/providers/aws/r/ecs_task_definition.html.markdown
2017-04-17 13:17:54 +03:00

3.8 KiB

layout, page_title, sidebar_current, description
layout page_title sidebar_current description
aws AWS: aws_ecs_task_definition docs-aws-resource-ecs-task-definition Provides an ECS task definition.

aws_ecs_task_definition

Provides an ECS task definition to be used in aws_ecs_service.

Example Usage

resource "aws_ecs_task_definition" "service" {
  family                = "service"
  container_definitions = "${file("task-definitions/service.json")}"

  volume {
    name      = "service-storage"
    host_path = "/ecs/service-storage"
  }

  placement_constraints {
    type       = "memberOf"
    expression = "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]"
  }
}

The referenced task-definitions/service.json file contains a valid JSON document, which is shown below, and its content is going to be passed directly into the container_definitions attribute as a string. Please note that this example contains only a small subset of the available parameters.

[
  {
    "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
      }
    ]
  }
]

Argument Reference

The following arguments are supported:

  • family - (Required) A unique name for your task definition.
  • container_definitions - (Required) A list of valid [container definitions] (http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) 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] (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official Developer Guide.
  • task_role_arn - (Optional) The ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
  • network_mode - (Optional) The Docker networking mode to use for the containers in the task. The valid values are none, bridge, and host.
  • volume - (Optional) A volume block. See below for details about what arguments are supported.
  • placement_constraints - (Optional) rules that are taken into consideration during task placement. Maximum number of placement_constraints is 10. Defined below.

Volume block supports the following arguments:

  • name - (Required) The name of the volume. This name is referenced in the sourceVolume parameter of container definition in the mountPoints section.
  • 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.

placement_constraints

placement_constraints support the following:

Attributes Reference

The following attributes are exported:

  • arn - Full ARN of the Task Definition (including both family and revision).
  • family - The family of the Task Definition.
  • revision - The revision of the task in a particular family.