Назад к вопросам
Senior
3
В чём разница между count и for_each в Terraform?
Компании, где спрашивали
Madiff
Ответ от нейросети
sobes.tech AI
В Terraform count и for_each используются для создания нескольких ресурсов, но имеют разные сценарии применения и возможности:
-
count — создает заданное количество одинаковых ресурсов, индексируемых числом от 0. Подходит, когда нужно создать несколько однотипных ресурсов без уникальных ключей.
-
for_each — создает ресурсы для каждого элемента из коллекции (множество, список, карта), где каждый ресурс идентифицируется уникальным ключом из коллекции. Позволяет работать с именованными или сложными наборами данных.
Пример с count:
resource "aws_instance" "example" {
count = 3
ami = "ami-123456"
instance_type = "t2.micro"
}
Создаст 3 одинаковых инстанса с индексами 0,1,2.
Пример с for_each:
resource "aws_instance" "example" {
for_each = {
web1 = "ami-123456"
web2 = "ami-654321"
}
ami = each.value
instance_type = "t2.micro"
}
Создаст два инстанса с ключами web1 и web2, что удобнее для управления и ссылок.
Итого:
- Используйте
count, когда ресурсы одинаковые и не нужно уникальных ключей. - Используйте
for_each, когда нужно создавать ресурсы из именованных или сложных коллекций и обращаться к ним по ключу.