gpt4 book ai didi

amazon-web-services - 通过 Terraform 在目标组中添加 ASG 实例

转载 作者:行者123 更新时间:2023-12-04 04:09:18 28 4
gpt4 key购买 nike

我有一个 Terraform 脚本,它创建一个启动配置、自动缩放组、一个 ALB、一个目标组和一个监听器。实例是使用自动缩放组启动的。

如何在同一脚本中通过 Terraform 在目标组中添加新启动的实例?

resource "aws_launch_configuration" "CF2TF-LC" {
name = "CF2TF-LC"
depends_on = ["aws_iam_role_policy_attachment.CF2TF-IAM-PA", "aws_security_group.CF2TF-SG-Web"]
image_id = "ami-14c5486b"
instance_type = "t2.micro"
iam_instance_profile = "${aws_iam_instance_profile.CF2TF-IAM-IP.id}"
key_name = "CF2TF"
security_groups = ["${aws_security_group.CF2TF-SG-Web.id}"]
user_data = "${template_file.CF2TF-UserData.rendered}"
}

resource "aws_autoscaling_group" "CF2TF-ASG" {
name = "CF2TF-ASG"
depends_on = ["aws_launch_configuration.CF2TF-LC"]
vpc_zone_identifier = ["${aws_subnet.CF2TF-Subnet-1a.id}", "${aws_subnet.CF2TF-Subnet-1d.id}"]
max_size = 3
min_size = 2
health_check_grace_period = 300
health_check_type = "EC2"
desired_capacity = 2
force_delete = true
launch_configuration = "${aws_launch_configuration.CF2TF-LC.id}"
}

resource "aws_lb" "CF2TF-ALB" {
name = "CF2TF-ALB"
subnets = ["${aws_subnet.CF2TF-Subnet-1a.id}", "${aws_subnet.CF2TF-Subnet-1d.id}"]
internal = false
load_balancer_type = "application"
security_groups = ["${aws_security_group.CF2TF-SG-Web.id}"]

tags {
Name = "WebSrv"
Environment = "Dev"
}
}

resource "aws_lb_target_group" "CF2TF-TargetGroup" {
name = "CF2TF-TargetGroup"
depends_on = ["aws_vpc.CF2TF-VPC"]
port = 80
protocol = "HTTP"
vpc_id = "${aws_vpc.CF2TF-VPC.id}"
target_type = "instance"

health_check {
interval = 30
path = "/index.html"
port = 80
healthy_threshold = 5
unhealthy_threshold = 2
timeout = 5
protocol = "HTTP"
matcher = "200,202"
}
}

resource "aws_lb_listener" "CF2TF-ALB-Listener" {
//depends_on = ["aws_lb.CF2TF-ALB.id", "aws_lb_target_group.CF2TF-TargetGroup.id"]
load_balancer_arn = "${aws_lb.CF2TF-ALB.arn}"
port = "80"
protocol = "HTTP"

default_action {
target_group_arn = "${aws_lb_target_group.CF2TF-TargetGroup.arn}"
type = "forward"
}
}

最佳答案

aws_autoscaling_group资源需要一个 target_group_arns parameter这会将 ASG 注册到目标组,以便所有实例在出现并在终止之前从负载平衡器中正确排出时都注册到负载均衡器的目标组。

因此,您的 ASG 资源应如下所示:

resource "aws_autoscaling_group" "CF2TF-ASG" {
name = "CF2TF-ASG"
depends_on = ["aws_launch_configuration.CF2TF-LC"]
vpc_zone_identifier = ["${aws_subnet.CF2TF-Subnet-1a.id}", "${aws_subnet.CF2TF-Subnet-1d.id}"]
max_size = 3
min_size = 2
health_check_grace_period = 300
health_check_type = "EC2"
desired_capacity = 2
force_delete = true
launch_configuration = "${aws_launch_configuration.CF2TF-LC.id}"
target_group_arns = ["${aws_lb_target_group.CF2TF-TargetGroup.arn}"]
}

关于amazon-web-services - 通过 Terraform 在目标组中添加 ASG 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50677641/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com