Difference between revisions of "Terraform resource: aws ecs service"
Jump to navigation
Jump to search
↑ https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#task_definition
Line 1: | Line 1: | ||
<code>[[aws_ecs_service]]</code> ([https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service ref]) | <code>[[aws_ecs_service]]</code> ([https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service ref]) | ||
+ | == Examples == | ||
== Official example == | == Official example == | ||
{{terraform_aws_ecs_service_official_example}} | {{terraform_aws_ecs_service_official_example}} | ||
+ | |||
+ | == 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 | ||
+ | } | ||
+ | |||
== Arguments == | == Arguments == |
Revision as of 13:15, 14 May 2023
Contents
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 }
Arguments
launch_type
:EC2, FARGATE, and EXTERNAL
. Default: EC2. https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#launch_typeload_balancer (argument)
:target_group_arn
task_definition
[1]security_groups
enable_execute_command
Errors
Related
See also
- Terraform resource:
aws_ecs_service: launch_type (EC2, FARGATE), iam_role, depends_on, load_balancer, desired_count, placement_constraints, deployment_minimum_healthy_percent, iam role
- Terraform ECS: module, resources:
aws_ecs_cluster, aws_ecs_service: task definition, aws_ecs_task_definition: container_definitions
terraform plan
: [-refresh-only | -lock=false
|-target
|-var-file
|will be created
|--help
], Terraform plan errors, Terraform plan examples, Terraform plan execution errors, (known after apply)- Terraform AWS resources: IAM, Net, EC2, ECS, ECR, S3, Route53, ACM, CloudWatch, CloudFront SES, RDS, DLM
Advertising: