for*_*orJ 3 amazon-web-services amazon-ecs terraform
我有负载均衡器、目标组、alb 侦听器和 aws ecs 服务,如下所示
resource "aws_alb" "django_alb" {
name = "fpstory-django-alb"
subnets = aws_subnet.public_subnet.*.id
security_groups = [aws_security_group.django_lb.id]
tags = {
Project = "fpstory"
Stage = terraform.workspace
}
}
resource "aws_alb_target_group" "django_tg" {
name = "fpstory-django-alb-target-group"
port = 80
protocol = "HTTP"
vpc_id = aws_vpc.main.id
target_type = "ip"
depends_on = [
aws_alb.django_alb
]
health_check {
healthy_threshold = "3"
interval = "30"
protocol = "HTTP"
matcher = "200"
port = var.django_port
timeout = "5"
path = var.health_check_path
unhealthy_threshold = "3"
}
tags = {
project = "fpstory"
stage = terraform.workspace
}
}
resource "aws_alb_listener" "django" {
load_balancer_arn = aws_alb.django_alb.arn
port = "80"
protocol = "HTTP"
// certificate_arn = var.certificate_arn
default_action {
target_group_arn = aws_alb_target_group.django_tg.id
type = "redirect"
redirect {
status_code = "HTTP_301"
protocol = "HTTP"
port = var.django_port
}
}
}
resource "aws_ecs_service" "django" {
name = "${terraform.workspace}-fpstory-django-service"
cluster = aws_ecs_cluster.main.id
task_definition = aws_ecs_task_definition.django.arn
desired_count = var.django_count
launch_type = "FARGATE"
depends_on = [
aws_alb_target_group.django_tg,
aws_iam_role_policy_attachment.ecs_task_execution_role
]
network_configuration {
security_groups = [
aws_security_group.django_ecs_tasks.id
]
subnets = aws_subnet.public_subnet.*.id
assign_public_ip = true
}
load_balancer {
target_group_arn = aws_alb_target_group.django_tg.arn
container_name = var.django_container_name
container_port = var.django_port
}
tags = {
Project = "fpstory"
Stage = terraform.workspace
}
}
Run Code Online (Sandbox Code Playgroud)
当我创建正在运行的基础设施时,terraform apply出现以下错误。
InvalidParameterException: The target group with targetGroupArn arn:aws:elasticloadbalancing:ap-northeast-2:985371652497:targetgroup/fpstory-django-alb-target-group/537aa9c2afb0c38a does not have an associated load balancer. "stag-fpstory-django-service"
当我查看AWS控制台时,目标组确实没有与任何负载均衡器关联。为了将目标组与负载均衡器关联,我还必须指定其他内容吗?
小智 5
我认为您想将“转发”指定为操作类型。
在“重定向”的情况下,您不需要目标组。
resource "aws_alb_listener" "django" {
load_balancer_arn = aws_alb.django_alb.arn
port = "80"
protocol = "HTTP"
// certificate_arn = var.certificate_arn
default_action {
target_group_arn = aws_alb_target_group.django_tg.id
type = "forward"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8131 次 |
| 最近记录: |