【发布时间】:2021-04-11 06:31:32
【问题描述】:
我创建了一些数据块来寻找合适的 AMI。 我有 4 个数据块来查找 4 个基于 4 个操作系统的 AMI。例如,
data "aws_ami" "centos" {
owners = ["123456789"]
most_recent = true
filter {
name = "name"
values = ["CentOS*${var.os-version}*x86_64"]
}
}
data "aws_ami" "suse" {
owners = ["amazon"]
most_recent = true
filter {
name = "name"
values = ["suse-sles-${var.os-version}-sp*-v????????-hvm-ssd-x86_64"]
}
}
我这样称呼他们ami_id=data.${os_name}.image-id
所以我想要的是只运行已调用的数据块。如果用户选择“suse”,那么只有 suse 数据块会运行。不是所有的人。 现在这是一个问题,因为用户根据操作系统选择版本。例如,16.04 仅适用于 ubuntu 不适用于其他任何数据块,因此其他数据块会引发如下异常,
Error: Your query returned no results. Please change your search criteria and try again.
on main.tf line 79, in data "aws_ami" "suse":
79: data "aws_ami" "suse" {
那么我该如何实现呢?
【问题讨论】:
-
您是否已经看过条件/计数?这可能会帮助stackoverflow.com/questions/41858630/…
标签: terraform terraform-provider-aws