Различие незначительно:
На высоком уровне извлеченные данные существуют до того, как вы запустите ваш шаблон, и вычисленные данные будут созданы во время выполнения.
Полученные данные будут аналогичны примеру в справочнике.Здесь Terraform
извлекает информацию о AMI, которую затем можно использовать для создания экземпляра EC2:
data "aws_ami" "web" {
filter {
name = "state"
values = ["available"]
}
filter {
name = "tag:Component"
values = ["web"]
}
most_recent = true
}
Вычисленные данные обычно можно определить как данные, которых не существует до запуска Terraform, но они будутгенерируется (вычисляется) по мере продвижения вашего шаблона.Например, если бы вы создали EIP для использования с экземпляром EC2, вы бы запустили:
resource "aws_eip" "ip" {
instance = "${aws_instance.example.id}"
}
. После этого несколько бит информации будут computed
при создании EIP:
+ aws_eip.ip
allocation_id: "<computed>"
association_id: "<computed>"
domain: "<computed>"
instance: "${aws_instance.example.id}"
network_interface: "<computed>"
private_ip: "<computed>"
public_ip: "<computed>"
Затем вы можете использовать эти значения computed
в других ресурсах.например, передача aws_eip.ip.public_ip
в группу безопасности, например.