Difference between revisions of "Terraform resource: aws ecs service"

From wikieduonline
Jump to navigation Jump to search
Line 9: Line 9:
 
* <code>[[desired_count]]</code>
 
* <code>[[desired_count]]</code>
 
* <code>[[placement_constraints]]</code>
 
* <code>[[placement_constraints]]</code>
 +
* <code>[[network_configuration]]</code>
  
 
== Examples ==
 
== Examples ==

Revision as of 09:19, 17 May 2023

aws_ecs_service(ref)

Arguments

Examples

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

Additional examples

resource "aws_ecs_service" "your_service" {
  count           = var.network_name == "prod" ? 1 : 0
  name            = "your_service-${var.env}-service"
  cluster         = aws_ecs_cluster.your_cluster.name
  task_definition = "${aws_ecs_task_definition.your_task[0].family}:${aws_ecs_task_definition.your_task[0].revision}"

  launch_type   = "FARGATE"
  desired_count = var.your_service_desired_count 

  network_configuration {
    security_groups  = [aws_security_group.your_sg[0].id]
    subnets          = [for s in data.aws_subnet.all_private : s.id]
    assign_public_ip = false
  } 

  load_balancer {
    target_group_arn = aws_lb_target_group.your_tg[0].arn
    container_name   = "your-container-${var.env}-c"
    container_port   = 4444
  }
}

Errors

News

Related

See also

  • https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#task_definition
  • Advertising: