【发布时间】:2022-01-02 12:49:08
【问题描述】:
我正在使用 Terraform 0.14.4 来维护不同的 AWS 账户。我有一个.tf 文件和多个状态文件,每个帐户一个。
我使用数据源查找附加了特定标签的所有 EC2 实例:
data "aws_instances" "all_instances" {
instance_tags = {
Monitoring = "MONITOR"
}
instance_state_names = ["running", "pending", "stopped", "stopping"]
}
此数据源用于为某些实例生成一些 CloudWatch 指标。
我在所有帐户中都有带有该标签的实例,但只有一个。在该帐户上运行 terraform plan 会给我这个错误:
Error: Your query returned no results. Please change your search criteria and try again.
on main.tf line 6, in data "aws_instances" "all_instances":
6: data "aws_instances" "all_instances" {
我想忽略数据源在此特定帐户中找不到任何实例,并继续使用我的脚本中维护的所有其他资源。
我如何做到这一点?
【问题讨论】:
-
您的所有帐户都必须有这样的实例。数据源不返回空结果。如果他们找不到匹配项,他们就会出错。你不能忽视这一点。
-
嗯,我害怕这个答案。我想出了一个解决方法,使用数据源中的
count条件,查询一些有助于我识别帐户的变量。不是最好的解决方案,因为我将来可能会在该特定帐户中启动实例。不过,我必须更新脚本。
标签: terraform terraform-provider-aws