我使用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
(提供的数据源。通过这种方式,您可以按照任何需要的逻辑进行编程,包括处理丢失的资源。