aws_ecs_task_definition
Provides an ECS task definition to be used in aws_ecs_service
.
Example Usage
resource "aws_ecs_task_definition" "jenkins" {
family = "jenkins"
container_definitions = "${file("task-definitions/jenkins.json")}"
volume {
name = "jenkins-home"
host_path = "/ecs/jenkins-home"
}
}
task-definitions/jenkins.json
The below would be passed into the container_definitions
attribute. This is a small subset of the available parameters, see the AWS docs for a full list.
[
{
"name": "jenkins",
"image": "jenkins",
"cpu": 10,
"memory": 500,
"essential": true,
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
}
]
Argument Reference
The following arguments are supported:
family
- (Required) The family, unique name for your task definition.container_definitions
- (Required) A list of container definitions in JSON format. See AWS docs for syntax. Note, you only need the containerDefinitions array, not the parent hash including the family and volumes keys.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 arenone
,bridge
, andhost
.volume
- (Optional) A volume block. Volumes documented below.
Volumes support the following:
name
- (Required) The name of the volume. This name is referenced in thesourceVolume
parameter of container definitionmountPoints
.host_path
- (Required) The path on the host container instance that is presented to the container.
Attributes Reference
The following attributes are exported:
arn
- Full ARN of the task definition (including bothfamily
&revision
)family
- The family of the task definition.revision
- The revision of the task in a particular family.
See the source of this document at Terraform.io