使用 aws_ec2_local_gateway_virtual_interface_groups 数据源批量查询 EC2 本地网关虚拟接口组

发布时间:2026/9/18 6:51:25

使用 aws_ec2_local_gateway_virtual_interface_groups 数据源批量查询 EC2 本地网关虚拟接口组 使用 aws_ec2_local_gateway_virtual_interface_groups 数据源批量查询 EC2 本地网关虚拟接口组【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws本文面向需要在 AWS Outposts 网络场景中批量发现 EC2 Local Gateway Virtual Interface Group本地网关虚拟接口组的 Terraform 使用者基于 terraform-provider-aws 官方文档与源码完整讲解aws_ec2_local_gateway_virtual_interface_groups数据源的用法、全部参数与导出属性并结合仓库内的实现与测试代码揭示其底层工作原理。读完本文你将能够用极简配置一次性取回所有虚拟接口组的标识符ids与虚拟接口标识符local_gateway_virtual_interface_ids并通过filter与tags精确缩小查询范围为后续的资源引用如本地网关路由表关联提供输入。数据源概述aws_ec2_local_gateway_virtual_interface_groups是 terraform-provider-aws 中归属于 Outposts (EC2) 子类别的数据源用于同时查询多个 EC2 Local Gateway Virtual Interface Group的详细信息例如标识符。在 AWS Outposts 的组网模型中本地网关Local Gateway上承载着多个虚拟接口组Virtual Interface Group每个组又关联若干虚拟接口Virtual Interface。该数据源与单数版本aws_ec2_local_gateway_virtual_interface_group见 website/docs/d/ec2_local_gateway_virtual_interface_group.html.markdown的区别在于单数版按local_gateway_id或id精确定位一个组而本数据源返回多个组的标识符集合适合在不预先知道具体组 ID 的情况下做批量发现与遍历。在仓库中的官方文档位于 website/docs/d/ec2_local_gateway_virtual_interface_groups.html.markdown其底层实现位于 internal/service/ec2/outposts_local_gateway_virtual_interface_groups_data_source.go。最小示例与许多 EC2 数据源一样最简单的用法是不提供任何筛选条件直接拉取当前区域内的全部本地网关虚拟接口组data aws_ec2_local_gateway_virtual_interface_groups all {}执行terraform apply或terraform plan后即可通过data.aws_ec2_local_gateway_virtual_interface_groups.all.ids拿到所有组的标识符列表。数据源默认在当前 Provider 配置指定的区域内查询无需额外参数。参数参考Argument Reference该数据源的所有参数都是可选的包括参数是否必填说明region可选该数据源执行查询的 AWS 区域。默认使用 Provider 配置中设置的区域filter可选一个或多个name/values筛选块对应 EC2 API 中DescribeLocalGatewayVirtualInterfaceGroups支持的过滤器。详见下文tags可选键值对形式的资源标签映射每个键值对必须与目标本地网关路由表上的标签完全一致filter 块参数filter配置块内部支持以下两个参数二者均为必填name- (Required) 过滤器名称即 EC2DescribeLocalGatewayVirtualInterfaceGroupsAPI 所支持的过滤字段名例如local-gateway-id。values- (Required) 一个或多个过滤器取值构成的列表。例如按本地网关 ID 筛选该写法与仓库测试用例中的配置一致见 internal/service/ec2/outposts_local_gateway_virtual_interface_groups_data_source_test.godata aws_ec2_local_gateways test {} data aws_ec2_local_gateway_virtual_interface_groups test { filter { name local-gateway-id values [tolist(data.aws_ec2_local_gateways.test.ids)[0]] } }需要说明的是EC2 的过滤语义是必须匹配所有 filter 块块与块之间为 AND而单个块内的多个 values 只需匹配其中之一值之间为 OR。filter块的底层 schema 是一个schema.TypeSet的可选属性见 internal/service/ec2/filters.go因此多个 filter 块的书写顺序不影响最终查询结果。按标签筛选tags参数会将配置中的标签转换成tag:key形式的 EC2 过滤器源码中通过newTagFilterList将每个标签映射为一个tag:前缀的 Filter见 internal/service/ec2/filters.go并追加到DescribeLocalGatewayVirtualInterfaceGroups请求中。因此tags中的每个键值对都必须与目标虚拟接口组上的真实标签完全一致才能命中。data aws_ec2_local_gateways test {} data aws_ec2_local_gateway_virtual_interface_groups source { filter { name local-gateway-id values [tolist(data.aws_ec2_local_gateways.test.ids)[0]] } } # 先给查询到的第一个组打标签 resource aws_ec2_tag test { key environment resource_id tolist(data.aws_ec2_local_gateway_virtual_interface_groups.source.ids)[0] value production } # 再按标签精确查询 data aws_ec2_local_gateway_virtual_interface_groups test { tags { (aws_ec2_tag.test.key) aws_ec2_tag.test.value } }以上写法与仓库中TestAccEC2OutpostsLocalGatewayVirtualInterfaceGroupsDataSource_tags的测试配置同构展示了「先通过 filter 定位 → 打标签 → 再按 tags 查询」的完整闭环。属性参考Attribute Reference除上述参数外该数据源还会导出以下属性属性说明idAWS 区域标识数据源本身不映射到某个具体资源因此以查询区域作为 ididsEC2 Local Gateway Virtual Interface Group 标识符集合local_gateway_virtual_interface_idsEC2 Local Gateway Virtual Interface 标识符集合其中local_gateway_virtual_interface_ids是所有命中的虚拟接口组所关联的虚拟接口 ID 的并集源码在遍历查询结果时对每个组追加其LocalGatewayVirtualInterfaceGroupId并把该组的LocalGatewayVirtualInterfaceIds全部展开追加见 internal/service/ec2/outposts_local_gateway_virtual_interface_groups_data_source.go。超时配置Timeouts该数据源仅支持read操作超时默认值为20mdata aws_ec2_local_gateway_virtual_interface_groups all { timeouts { read 10m } }对应源码中schema.ResourceTimeout对Read的默认设置见 internal/service/ec2/outposts_local_gateway_virtual_interface_groups_data_source.go。通常该查询一次即可完成默认值足够仅当网络异常或 API 限流时可能需要调大。源码实现与底层调用链理解底层调用链有助于判断该数据源的查询行为与适用范围。从 Schema 到 API 请求数据源通过dataSourceLocalGatewayVirtualInterfaceGroups定义 schema并注册ReadWithoutTimeout: dataSourceLocalGatewayVirtualInterfaceGroupsRead作为读取回调。读取过程的核心逻辑如下对应 internal/service/ec2/outposts_local_gateway_virtual_interface_groups_data_source.go从 Provider 上下文取得 EC2 客户端meta.(*conns.AWSClient).EC2Client(ctx)构造ec2.DescribeLocalGatewayVirtualInterfaceGroupsInput请求将tags参数转换为tag:key过滤器将filter块转换为自定义过滤器一并追加到请求的Filters中调用 finder 函数执行查询遍历结果分别收集组 ID 与虚拟接口 ID以当前查询区域Region作为数据源id写入ids与local_gateway_virtual_interface_ids。分页查询由于组数量可能较多finder 使用了 AWS SDK for Go v2 的分页器DescribeLocalGatewayVirtualInterfaceGroupsPaginator逐页拉取直至HasMorePages()返回 false 后合并全部结果见 internal/service/ec2/find.go。这意味着该数据源天然支持任意数量的虚拟接口组不会因为组过多而被截断——这与单数版数据源复用同一 finder 后再调用tfresource.AssertSingleValueResult强制只保留唯一结果的逻辑形成对比见 internal/service/ec2/find.go。自定义过滤器的规范化filter块底层由customFiltersSchema提供它是一个TypeSet类型的 schema元素包含name与values两个字段见 internal/service/ec2/filters.go。读取时由newCustomFilterList将其转换为 EC2Filter对象。这套机制是 EC2 服务下大量数据源的通用约定因此本数据源在使用体验上与aws_ec2_local_gateway_virtual_interface、aws_ec2_subnets等数据源的filter块完全一致。测试覆盖与验证仓库为数据源提供了三组 acceptance 测试见 internal/service/ec2/outposts_local_gateway_virtual_interface_groups_data_source_test.go可作为使用时的行为参照TestAccEC2OutpostsLocalGatewayVirtualInterfaceGroupsDataSource_basic无任何参数直接查询验证ids.#与local_gateway_virtual_interface_ids.#的数量TestAccEC2OutpostsLocalGatewayVirtualInterfaceGroupsDataSource_filter通过filter { name local-gateway-id }限定到单个本地网关验证筛选生效TestAccEC2OutpostsLocalGatewayVirtualInterfaceGroupsDataSource_tags先给组打标签再以tags精确匹配验证标签筛选生效。三组测试都要求环境存在 Outposts 资源PreCheckOutpostsOutposts这是该数据源在真实世界中可用的前提条件只有在已部署 AWS Outposts 的账号/区域中本地网关虚拟接口组才会存在否则查询结果为空列表。典型使用场景该数据源的典型用途是为其他资源提供输入常见组合包括配合aws_ec2_local_gateway_route_table_virtual_interface_group_association见 website/docs/r/ec2_local_gateway_route_table_virtual_interface_group_association.html.markdown将路由表与组关联例如用count/for_each遍历ids批量建立关联配合aws_ec2_local_gateway_route见 website/docs/r/ec2_local_gateway_route.html.markdown在本地网关上添加路由在模块化设计中将ids作为 output 暴露给上层模块供其按需引用。与单数版数据源website/docs/d/ec2_local_gateway_virtual_interface_group.html.markdown以及虚拟接口数据源website/docs/d/ec2_local_gateway_virtual_interface.html.markdown配合使用时可以构建出「本地网关 → 虚拟接口组 → 虚拟接口」的完整发现链路。使用注意事项区域敏感数据源默认在当前 Provider 区域查询跨区域场景需显式指定region空结果合法当区域中没有 Outposts 部署或没有匹配的虚拟接口组时ids与local_gateway_virtual_interface_ids为空列表而不是报错id不等于组 ID数据源的id是查询区域AWS Region组标识符集合是ids二者不要混淆如需单个组的 ID请使用单数版数据源或从ids中取元素如tolist(...ids)[0]tags 匹配需完全一致标签筛选要求键值对与资源上的实际标签完全相等适合与aws_ec2_tag等打标签资源配合实现动态发现升级到 4.x 及以后版本在旧版本升级指南中曾涉及该数据源相关资源的变更说明可参阅 website/docs/guides/version-4-upgrade.html.markdown 确认当前行为。小结aws_ec2_local_gateway_virtual_interface_groups是一个「零必填参数、批量返回标识符」的轻量数据源通过可选的region、filter、tags控制查询范围通过ids与local_gateway_virtual_interface_ids输出结果并支持20m默认读取超时。其底层基于DescribeLocalGatewayVirtualInterfaceGroupsAPI 与分页器实现可安全用于大规模 Outposts 组网下的批量发现是构建本地网关路由与关联资源的理想输入源。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/18 6:51:25

2025年3D打印技术突破与应用全景解析

1. 3D打印技术发展现状解析2025年的3D打印技术已经突破了传统制造方式的诸多限制,正在从实验室走向工业化量产。从桌面级FDM打印机到工业级金属增材制造系统,这项技术正在重塑全球制造业格局。根据最新行业报告显示,全球3D打印市场规模预计将…

2026/9/18 6:46:25

工控现场调试瑞士军刀:良友工控助手功能与实战解析

干了十几年工控,箱子里的调试工具越攒越多。串口线、USB转485、网口转接头、各个厂家的编程软件、各种协议测试小工具,每次出差跟搬家一样。现场最怕的不是设备坏了,是电脑里装的软件版本不对,或者到了现场发现手头缺一个能临时测…

2026/9/18 8:56:33

STM32边缘AI轻量化部署:量化剪枝、内存规划与Cache优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 8:56:33

Unity音游开发:Koreography音乐同步与节奏判定实战解析

做音游的时候,最折磨人的不是角色美术,不是UI特效,而是“怎么让所有元素精准踩在拍子上”。早年我试过用协程配合音频延迟估算时间,再手动写一堆Timer去同步音符,结果就是音频一换,整个节奏全乱&#xff0c…

2026/9/18 8:56:33

Windows下编译OpenCV_contrib完整指南:从CMake配置到项目集成

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 8:56:33

macOS Tahoe 降级回 Sequoia:备份、抹盘与环境重建指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 8:56:33

围绕 OpenAI 智能体做请求审计,TaoToken 记录消耗方

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 8:51:32

Unity全景视频播放:投影、编码与流畅度优化实践

简介:面向Unity开发者和VR爱好者,资源聚焦Unity 2017环境下的全景视频播放实现,系统梳理了使用内置MovieTexture组件加载OGG/OVG视频、创建3D球体并放置主相机、通过Renderer映射纹理,以及利用AudioSource同步音轨的完整流程。文档…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/18 0:01:09

Google Colab 实战:运行模型、数据加载与报错排查

1. 为什么我劝你先搞懂 Colab 的运行模型1.1 Colab 到底是什么,跟本地跑代码差在哪Google Colab 简单说就是一台跑在浏览器里的 Linux 虚拟机,你打开一个 Notebook,背后就连上了一台带 GPU 的远程机器。你在单元格里敲的每一行 Python&#x…

2026/9/18 0:01:09

C语言数据类型与表达式详解

1. C语言数据与数据类型概述在C语言编程中,数据是程序处理的核心对象。理解数据的分类和特性是掌握C语言的基础。C语言中的数据主要分为四大类:常量、变量、表达式和函数。这些数据类型构成了C语言程序的基本元素,每种类型都有其独特的特性和…

2026/9/18 0:01:09

SQL时间字段指定时间段查询:区间语义、索引与时区避坑

上周排查一个线上问题&#xff0c;用户反馈"昨天的订单一条都没查到"&#xff0c;但数据库里明明躺着两千多条。最后定位下来&#xff0c;不是数据丢了&#xff0c;也不是接口挂了&#xff0c;而是那个查询条件把时间段写成了> 2024-05-20 00:00:00 AND < 2024…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码