Difference between revisions of "Terraform resource: aws ecs task definition"

From wikieduonline
Jump to navigation Jump to search
Line 10: Line 10:
 
  [[family]] (required) is a name for your task definition
 
  [[family]] (required) is a name for your task definition
 
  [[container_definitions]]:  [[name]], [[image]], [[cpu]], [[memory]], [[essential]], [[portMappings]]
 
  [[container_definitions]]:  [[name]], [[image]], [[cpu]], [[memory]], [[essential]], [[portMappings]]
  [[environment]]
+
  [[environment]] =
  [[secrets]]
+
  [[secrets]] =
  [[dependsOn]]
+
  [[dependsOn]] =
  [[portMappings]]  
+
  [[portMappings]] =
  [[task_role_arn]]
+
  [[task_role_arn]] =
  [[revision]] https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition#revision
+
  [[revision]] = https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition#revision
  [[volume]]
+
  [[volume]] =
  [[cpu]]
+
  [[cpu]] =
  [[cpu_architecture]]
+
  [[cpu_architecture]] =
  [[Terraform resource: aws ecs task definition, memory|memory]]
+
  [[Terraform resource: aws ecs task definition, memory|memory =]]
  [[execution_role_arn]]
+
  [[execution_role_arn]] =
  
 
== Examples ==
 
== Examples ==

Revision as of 08:26, 12 May 2023

aws_ecs_task_definition (ref)


https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition#network_mode

Attributes

family (required) is a name for your task definition
container_definitions:  name, image, cpu, memory, essential, portMappings
environment =
secrets =
dependsOn =
portMappings = 
task_role_arn =
revision = https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition#revision
volume =
cpu =
cpu_architecture =
memory =
execution_role_arn =

Examples

Official example

resource "aws_ecs_task_definition" "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
       }
     ]
   }
 ])

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



Example myservice

resource "aws_ecs_task_definition" "myservice" {
 family = "myservice"
 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
       }
     ]
   }
 ])

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


Official aws_ecs_service example

resource "aws_ecs_service" "mongo" {
 name            = "mongodb"
 cluster         = aws_ecs_cluster.foo.id
 task_definition = aws_ecs_task_definition.mongo.arn
 desired_count   = 3
 iam_role        = aws_iam_role.foo.arn
 depends_on      = [aws_iam_role_policy.foo]

 ordered_placement_strategy {
   type  = "binpack"
   field = "cpu"
 }

 load_balancer {
   target_group_arn = aws_lb_target_group.foo.arn
   container_name   = "mongo"
   container_port   = 8080
 }

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


resource "aws_ecs_task_definition" "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
       }
     ]
   }
 ])

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

Errors

Related

See also

Advertising: