You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询多个Transit Gateway对等连接附件时Terraform报错求助

Terraform查询多个Transit Gateway对等连接附件报错的解决方案

问题原因

aws_ec2_transit_gateway_attachment数据源默认要求过滤条件匹配单个Transit Gateway附件,当你的查询条件匹配到多个附件时,就会触发你看到的报错。

解决方案

方案1:获取所有匹配的附件(使用复数数据源)

如果你需要获取所有符合条件的对等连接附件,改用专门支持多结果的aws_ec2_transit_gateway_attachments(复数形式)数据源:

data "aws_ec2_transit_gateway_attachments" "example" {
  filter {
    name    = "state"
    values  = ["pendingAcceptance","available"]
  }

  filter {
    name   = "transit-gateway-id"
    values = ["<Transit_gateway_id>"]
  }
}

使用时可以通过以下方式访问结果:

  • 获取所有附件ID列表:data.aws_ec2_transit_gateway_attachments.example.ids
  • 遍历单个附件属性(比如第一个附件的状态):data.aws_ec2_transit_gateway_attachments.example.attachments[0].state

方案2:缩小过滤范围到单个附件

如果你只需要特定的一个对等连接附件,添加更精确的过滤条件:

  • 过滤附件类型为对等连接(peering)
  • 或者指定目标对等网关ID

示例代码:

data "aws_ec2_transit_gateway_attachment" "example" {
  filter {
    name    = "state"
    values  = ["pendingAcceptance","available"]
  }

  filter {
    name   = "transit-gateway-id"
    values = ["<Transit_gateway_id>"]
  }

  # 过滤对等连接类型
  filter {
    name   = "attachment-type"
    values = ["peering"]
  }

  # 可选:指定特定的对等网关ID
  filter {
    name   = "peer-transit-gateway-id"
    values = ["<Peer_Transit_gateway_id>"]
  }
}

这样就能确保过滤条件只匹配单个附件,解决报错问题。

内容的提问来源于stack exchange,提问作者Jai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:20:24