Ответ
В инфраструктуре как код (IaC), Data Source — это механизм для запроса и чтения информации из внешних систем или существующей инфраструктуры без её изменения. Это позволяет динамически получать данные (например, ID последнего AMI, параметры VPC, IP-адреса) для использования в декларативной конфигурации.
Пример в Terraform (получение ID последнего AMI Ubuntu для AWS):
data "aws_ami" "latest_ubuntu" {
most_recent = true
owners = ["099720109477"] # Canonical
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"]
}
}
resource "aws_instance" "web" {
ami = data.aws_ami.latest_ubuntu.id # Использование данных из источника
instance_type = "t2.micro"
tags = {
Name = "Web Server from Latest AMI"
}
}
Ключевые моменты:
- Только для чтения: Data Source не создает и не изменяет ресурсы, он только запрашивает информацию.
- Динамичность: Позволяет избежать хардкода значений (например, конкретных ID образов), которые могут меняться со временем.
- Зависимости: Ресурсы, использующие Data Source, будут ждать, пока источник не вернет данные, обеспечивая корректный порядок развертывания.