【问题标题】:Terraform - Getting error: Your query returned no results. Please change your search criteria and try againTerraform - 出现错误:您的查询未返回任何结果。请更改您的搜索条件,然后重试
【发布时间】:2021-04-09 01:31:02
【问题描述】:

我只是试图通过使用数据语句将一些项目标签应用于现有的互联网网关

data "aws_internet_gateway"    "internet_gateway"  {
   filter {
       name   = "attachment.vpc-id"
       values = [ aws_default_vpc.network[0].id ]
   }

   tags = var.tags
}

我也检查过 aws cli,这是输出

aws ec2 describe-internet-gateways
{
    "InternetGateways": [
        {
            "Attachments": [
                {
                    "State": "available",
                    "VpcId": "vpc-***"
                }
            ],
            "InternetGatewayId": "igw-***",
            "OwnerId": "***",
            "Tags": []
        }
    ]
}

我使用的过滤器在 terraform 官方文档网页的示例中 https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/internet_gateway

【问题讨论】:

    标签: amazon-web-services terraform


    【解决方案1】:

    您应该从 Terraform 数据查找中删除 tags 部分。您正在指示 Terraform 搜索具有这些标签的互联网网关,但正如您在 CLI 输出中看到的那样,互联网网关没有分配任何标签。

    在 Terraform resource 元素上,指定 tags 会使其将这些标签分配给资源,但在 data 元素上指定 tags 会导致 Terraform 使用标签值作为搜索的一部分执行。


    如果它仍然不起作用,您需要验证 aws_default_vpc.network[0].id 的值是否符合您的预期,即与 CLI 输出中的 VpcId 的值相同。

    【讨论】:

    • 现在我明白了,谢谢@Mark B。你能建议我给默认 Internet 网关添加标签的方法吗?
    • 您可以使用resource 元素引用它,而不是使用data 元素引用互联网网关,并使用terraform import 导入当前状态,之后Terraform 可以执行诸如分配之类的操作标记资源。
    猜你喜欢
    • 2022-12-14
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2021-01-04
    相关资源
    最近更新 更多