Terraform:如何忽略数据源"aws_instances"的"错误:您的查询未返回任何结果"



我使用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" {

我想忽略数据源在这个特定帐户中找不到任何实例的事实,继续使用脚本中维护的所有其他资源。

我该如何做到这一点?

除了您在评论中提到的内容外,还有一种可能性是使用外部数据源。因此,您可以实现自己的数据源,而不是使用aws提供者(aws_instances(提供的数据源。通过这种方式,您可以按照任何需要的逻辑进行编程,包括处理丢失的资源。

最新更新