Terraform: how to ignore "Error: Your query returned no results" for data source "aws_instances"
Terraform: how to ignore "Error: Your query returned no results" for data source "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" {
我想忽略数据源在这个特定帐户中找不到任何实例,并继续使用我的脚本中维护的所有其他资源。
如何实现?
除了您在评论中提到的,另一种可能性是使用 External Data Source。因此,您可以实现自己的数据源,而不是使用 aws 提供商 (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" {
我想忽略数据源在这个特定帐户中找不到任何实例,并继续使用我的脚本中维护的所有其他资源。
如何实现?
除了您在评论中提到的,另一种可能性是使用 External Data Source。因此,您可以实现自己的数据源,而不是使用 aws 提供商 (aws_instances
) 提供的数据源。这样您就可以按照您想要的任何逻辑进行编程,包括处理丢失的资源。