Из документов Terraform - https://www.terraform.io/docs /providers/aws/r/cloudwatch_event_target.html
Я не вижу возможности сопоставить несколько целей одному и тому же правилу Cloudwatch. Требуется только поле arn
, которое принимает один ресурс. Я пытаюсь сопоставить 5 лямбд с тем же правилом Cloudwatch. Terraform поддерживает это?
РЕДАКТИРОВАТЬ: Как я могу прикрепить только 5 лямбд? Если я создал 15 лямбд, я хочу прикрепить 5 к 3 правилам облачного наблюдения.
2 ответа
Работай! Я должен был разделить количество правил на 5, когда я назначил цели правилам. Примерно так это выглядит:
resource "aws_cloudwatch_event_rule" "arule" {
count = "${ceil(length(var.lambda_arns) / 5.0)}" // Needs to be 5.0 to force float computation
name = "${var.rule_name}${format("-%d", count.index)}"
is_enabled = true
}
resource "aws_cloudwatch_event_target" "atarget" {
depends_on = ["aws_cloudwatch_event_rule.arule"]
count = "${length(var.lambda_arns)}"
rule = "${aws_cloudwatch_event_rule.arule.*.name[count.index / 5]}"
arn = "${var.lambda_arns[count.index]}"
}
Я создал правила событий на основе количества лямбд (то есть, если есть 10 лямбд, создаются 2 правила).
Я создал цели, основываясь на количестве лямбд (то есть, если есть 10 лямбд, создается 10 целей).
Я назначил цели пропорционально среди правил, разделив count.index
на 5 (та же логика, которая использовалась для определения количества правил).
Предполагая, что вы создали все свои lambas, используя один и тот же ресурс terraform со счетчиком, вы можете использовать счет также:
resource "aws_cloudwatch_event_target" "cw_target" {
count = length(aws_lambda_function.my_lambdas)
rule = "${aws_cloudwatch_event_rule.my_rule.name}"
arn = "${aws_lambda_function.my_lambdas.*.arn[count.index]}"
}
Похожие вопросы
Новые вопросы
amazon-web-services
Amazon Web Services (AWS) - это общедоступное облако: IaaS (инфраструктура как услуга) и SaaS (программное обеспечение как услуга), предоставляемые Amazon. Вопросы по программированию и архитектуре находятся по теме. Общую справку по серверу можно получить по адресу https://serverfault.com. Тег AWS редко используется отдельно и обычно используется вместе с другими тегами, чтобы более четко определить тему вопроса.