新闻详情

新闻详情

首页 / 资讯中心 / 详情

使用 Terraform AWS Provider 的 `aws_networkmanager_connection` 数据源查询 Network Manager 连接详情

发布时间:2026/9/19 20:31:39来源:尧图网络
使用 Terraform AWS Provider 的 `aws_networkmanager_connection` 数据源查询 Network Manager 连接详情
使用 Terraform AWS Provider 的aws_networkmanager_connection数据源查询 Network Manager 连接详情【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws导读本文介绍 Terraform AWS Provider 提供的aws_networkmanager_connection数据源Data Source通过global_network_id与connection_id两个必填参数即可读取 AWS Network Manager 全局网络中一条已存在的 Connection设备间连接的全部属性包括 ARN、两端设备与链路 ID、描述与标签。读完本文你将掌握该数据源的完整配置语法、参数与导出属性清单并通过仓库源码理解其底层 API 调用、标签处理与状态等待机制能够在基础设施即代码IaC中安全地引用既有连接而无需在状态中重复管理。数据源定位连接信息从哪来在 AWS Network Manager 的体系中Connection描述的是同一个全球网络Global Network内两台设备Device之间的连接关系可选的link_id/connected_link_id进一步将连接绑定到具体的链路Link。aws_networkmanager_connection数据源用于查询已存在的连接信息它与管理型资源 aws_networkmanager_connection 的区别在于资源Resource负责创建、更新、删除连接会写入 Terraform 状态数据源Data Source只读地拉取某个连接的当前属性供其他资源配置引用例如将查询到的connected_device_id传给监控、计费或自动化脚本相关配置。文档对该数据源的定位是 Provides details about an existing Network Manager connection即提供关于已有 Network Manager 连接的详细信息。基本用法在 connection_data_source.go 中该数据源注册为SDKDataSource(aws_networkmanager_connection, nameConnection)schema 中global_network_id与connection_id均为Required必填其余属性全部为Computed只读导出。最小可用配置如下data aws_networkmanager_connection example { global_network_id var.global_network_id connection_id var.connection_id }其中var.global_network_id与var.connection_id可由你自行通过变量传入也可以直接引用仓库内其他 Terraform 资源的输出例如data aws_networkmanager_connection example { global_network_id aws_networkmanager_global_network.example.id connection_id aws_networkmanager_connection.example.id }connection_id即连接在 AWS 侧的 ID例如connection-07f6fd08867abc123格式它同时会被用作数据源的内部 ID源码中d.SetId(connectionID)。参数参考Argument Reference该数据源支持以下参数参数必填说明global_network_id是Required待查询连接所属 Global Network全球网络的 IDconnection_id是Required待查询的具体连接的 ID从源码看这两个参数构成读取连接的双键two-part keyfindConnectionByTwoPartKey 会构造GetConnectionsInput{ConnectionIds: []string{connectionID}, GlobalNetworkId: aws.String(globalNetworkID)}调用 AWS 的GetConnectionsAPI并在返回结果中再次校验GlobalNetworkId与ConnectionId与请求一致作为最终一致性eventual consistency兜底校验不通过时返回retry.NotFoundError。这意味着同一 connection_id 在不同 global network 下不会混淆查询结果与查询条件严格对应。导出属性参考Attribute Reference除了上述两个参数本身数据源还会导出以下只读属性属性说明arn连接的 ARNAmazon 资源名称connected_device_id连接中第二台设备的 IDconnected_link_id第二台设备所关联链路的 IDdescription连接的描述信息device_id连接中第一台设备的 IDlink_id第一台设备所关联链路的 IDtags连接的键值标签Key-value tags这些属性在 dataSourceConnectionRead 中逐项从 AWS SDK 返回的awstypes.Connection结构体映射到 Terraform stated.Set(names.AttrARN, connection.ConnectionArn) d.Set(connected_device_id, connection.ConnectedDeviceId) d.Set(connected_link_id, connection.ConnectedLinkId) d.Set(names.AttrConnectionID, connection.ConnectionId) d.Set(names.AttrDescription, connection.Description) d.Set(device_id, connection.DeviceId) d.Set(global_network_id, connection.GlobalNetworkId) d.Set(link_id, connection.LinkId)标签的读取与过滤规则tags属性走的是 provider 统一的标签读取链路源码中d.Set(names.AttrTags, keyValueTags(ctx, connection.Tags).IgnoreAWS().IgnoreConfig(ignoreTagsConfig).Map())其含义是.IgnoreAWS()过滤掉 AWS 自动添加的系统标签如aws:前缀.IgnoreConfig(ignoreTagsConfig)遵循 provider 级ignore_tags配置块按用户的忽略规则剔除标签最终以 Go map 形式写入tags。因此你在数据源中看到的tags是经过 provider 全局过滤规则清洗后的结果这一点与资源侧的tags_all语义不同引用时需注意。与相关资源/数据源的配套使用用资源创建、用数据源读取典型的完整链路是先通过资源创建 Global Network、Device 与 Connection再用数据源读取属性做校验或供下游使用resource aws_networkmanager_global_network example { description example } resource aws_networkmanager_device example1 { global_network_id aws_networkmanager_global_network.example.id } resource aws_networkmanager_device example2 { global_network_id aws_networkmanager_global_network.example.id } resource aws_networkmanager_connection example { global_network_id aws_networkmanager_global_network.example.id device_id aws_networkmanager_device.example1.id connected_device_id aws_networkmanager_device.example2.id } data aws_networkmanager_connection example { global_network_id aws_networkmanager_global_network.example.id connection_id aws_networkmanager_connection.example.id } output connection_arn { value data.aws_networkmanager_connection.example.arn }资源侧补充说明详见 资源文档device_id、connected_device_id、global_network_id在资源中均为必填且ForceNew修改即重建connected_link_id、description、link_id为可选description在源码中有validation.StringLenBetween(0, 256)的长度校验见 connection.go资源还提供create/update/delete默认 10 分钟的 Timeout以及基于连接 ARN 的导入能力。批量查询aws_networkmanager_connections如果你需要按device_id或标签批量获取连接 ID 列表可配合使用列表数据源 aws_networkmanager_connections它以global_network_id为必填参数支持可选的device_id与tags过滤导出ids列表随后再对每个 ID 用本文的aws_networkmanager_connection数据源逐条查询详情即可拼出列表 明细的完整查询方案。底层原理数据源的一次读取是如何完成的结合源码可梳理出数据源完整的执行链路初始化客户端dataSourceConnectionRead通过meta.(*conns.AWSClient).NetworkManagerClient(ctx)获取 Network Manager 服务的 AWS SDK v2 客户端构造查询条件读取global_network_id与connection_id调用findConnectionByTwoPartKey分页拉取findConnections 使用networkmanager.NewGetConnectionsPaginator对GetConnections结果分页聚合若全局网络不存在会将ResourceNotFoundException包装为retry.NotFoundError唯一性断言findConnection 通过tfresource.AssertSingleValueResult断言必须恰好命中一条连接多于一条则报错一致性校验校验返回的GlobalNetworkId与ConnectionId与请求参数一致写入 state将各字段与清洗后的tags写入 Terraform state数据源 ID 设为connection_id。这一分页聚合 单值断言 最终一致性校验的模式在仓库中属于通用惯例与资源侧resourceConnectionRead复用的是同一套查找函数保证了数据源与资源读到的是同一份事实。测试验证数据源与资源的属性一致性仓库为数据源编写了接受度测试Acceptance Test见 connection_data_source_test.go。TestAccNetworkManagerConnectionDataSource_basic的核心思路是先用testAccConnectionConfig_descriptionAndLinks创建带description、link_id、tags的完整资源场景再叠加data aws_networkmanager_connection test数据源配置通过resource.TestCheckResourceAttrPair逐一断言数据源每个导出属性与资源属性成对相等包括arn、connected_device_id、connected_link_id、connection_id、description、global_network_id、link_id以及tags.%。该测试同时验证了数据源在资源带链路与描述场景下的正确性也与文档中导出属性 参数 上述只读属性的说明完全对应。若你想在本地复现可按 running-and-writing-acceptance-tests.md 的指引设置 AWS 凭据与TF_ACC1后运行注意测试中PreCheck会先校验账号与区域可用性。常见疑问与注意事项数据源查询不到连接会怎样源码中findConnectionByTwoPartKey在结果为空或一致性校验失败时返回NotFoundErrordataSourceConnectionRead会直接报错 reading Network Manager Connection不会静默返回空数据。连接被删除后数据源会报错吗会。数据源没有资源那样的从 state 中移除逻辑资源在Read时对非新建资源的NotFound会清空 ID见 connection.go数据源每次 plan/apply 都会实时调用 AWS 查询因此被删连接会导致数据源引用失败这恰恰是详情实时可查这一设计意图。跨区域可用性Network Manager 是全球服务global_network_id标识的是全局网络实体连接数据不依赖具体区域端点实际调用区域由 provider 配置决定。标签差异数据源的tags是清洗后的结果与资源导出的tags_all含 provider 级default_tags继承语义不同做相等性比较时请选择正确的属性。小结aws_networkmanager_connection数据源以global_network_idconnection_id双键精确定位一条 Network Manager 连接一次性导出 ARN、两端设备/链路 ID、描述与标签等全部元数据。其实现位于 connection_data_source.go底层复用资源同款的GetConnections分页查询与最终一致性校验逻辑并有 接受度测试 保证属性与资源完全对齐。无论是将既有连接信息注入其他资源还是做状态审计与自动化校验它都是连接aws_networkmanager_connections批量列表与资源生命周期管理之间的关键一环。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

uni-app x App 平台标准运行基座全解析:包名签名、功能模块与权限配置实战 2026/9/19 22:10:56

uni-app x App 平台标准运行基座全解析:包名签名、功能模块与权限配置实战

uni-app x App 平台标准运行基座全解析:包名签名、功能模块与权限配置实战 【免费下载链接】uni-app A cross-platform framework using Vue.js 项目地址: https://gitcode.com/gh_mirrors/un/uni-app 本文以 uni-app x(Vue.js 跨平台框架&#x…

阅读更多 →
Vue CLI PWA 插件实战指南:@vue/cli-plugin-pwa 的 Service Worker 与 Web App Manifest 配置详解 2026/9/19 22:10:56

Vue CLI PWA 插件实战指南:@vue/cli-plugin-pwa 的 Service Worker 与 Web App Manifest 配置详解

Vue CLI PWA 插件实战指南:vue/cli-plugin-pwa 的 Service Worker 与 Web App Manifest 配置详解 【免费下载链接】vue-cli 🛠️ webpack-based tooling for Vue.js Development 项目地址: https://gitcode.com/gh_mirrors/vu/vue-cli 导读 本文…

阅读更多 →
Front-End-Checklist 实战:如何用 pnpm audit 与 CI 管道审计依赖漏洞(dependency-audit 规则深度解析) 2026/9/19 22:10:56

Front-End-Checklist 实战:如何用 pnpm audit 与 CI 管道审计依赖漏洞(dependency-audit 规则深度解析)

Front-End-Checklist 实战:如何用 pnpm audit 与 CI 管道审计依赖漏洞(dependency-audit 规则深度解析) 【免费下载链接】Front-End-Checklist 🗂 The essential checklist for modern web development, for humans and AI agents…

阅读更多 →
AutoGen 多智能体跑 Agentic Workflow,Base URL 填 TaoToken 2026/9/19 22:10:56

AutoGen 多智能体跑 Agentic Workflow,Base URL 填 TaoToken

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

阅读更多 →
CC Switch 指向 TaoToken:把 Qwen3.8 Max 设为默认模型 2026/9/19 22:10:56

CC Switch 指向 TaoToken:把 Qwen3.8 Max 设为默认模型

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

阅读更多 →
从传统AI到LLM Agent:技术演进与实战解析 2026/9/19 22:07:56

从传统AI到LLM Agent:技术演进与实战解析

1. 从传统AI到LLM Agent的技术演进2006年我在大学实验室第一次接触基于规则系统的聊天机器人时,需要手工编写数百条if-else规则来处理用户输入。这种传统AI系统存在明显的局限性:规则维护成本高、泛化能力差、对话场景受限。直到2022年GPT-3.5的出现&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞