terraform-provider-aws 数据源 aws_lb_hosted_zone_id 完全指南:为 Route 53 别名记录动态获取 ELB Hosted Zone ID
terraform-provider-aws 数据源 aws_lb_hosted_zone_id 完全指南为 Route 53 别名记录动态获取 ELB Hosted Zone ID【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws本篇指南围绕 terraform-provider-aws 官方数据源aws_lb_hosted_zone_id展开讲解如何在不同区域为 Application Load BalancerALB与 Network Load BalancerNLB动态获取 AWS 托管的 Hosted Zone ID并将其应用于 Route 53 别名Alias记录的zone_id字段。读完本文你将掌握该数据源的参数语义、输出属性、底层实现原理区域映射表与读取逻辑以及如何避免在配置中硬编码区域化 Zone ID。数据源的作用与适用场景AWS 的弹性负载均衡服务Elastic Load Balancing在创建时会为每个区域分配一组固定的、由 AWS 托管的 Hosted Zone ID形如Z35SXDOTRQ7X7K、Z2IFOLAFXWLO4F。当你需要为负载均衡器创建 Route 53 别名记录Alias Record时别名块的zone_id字段必须填写负载均衡器所在区域的这个 ID。由于该 ID 随区域与负载均衡器类型不同而变化直接在配置中硬编码会导致配置难以跨区域复用。aws_lb_hosted_zone_id数据源正是为此设计它由官方文档定义见 website/docs/d/lb_hosted_zone_id.html.markdown可以根据当前 Provider 配置的区域或显式指定的region与负载均衡器类型application或network返回对应的 Hosted Zone ID。示例用法与 Route 53 别名记录组合文档给出了最典型的使用方式——在aws_route53_record的alias块中引用数据源的iddata aws_lb_hosted_zone_id main {} resource aws_route53_record www { zone_id aws_route53_zone.primary.zone_id name example.com type A alias { name aws_lb.main.dns_name zone_id data.aws_lb_hosted_zone_id.main.id evaluate_target_health true } }要点说明zone_id指向数据源导出的id即 ALB 在当前区域对应的 Hosted Zone IDname使用aws_lb.main.dns_name即负载均衡器的 DNS 名称默认情况下数据源按application类型取值若负载均衡器是 NLB需要显式声明load_balancer_type network。Argument Reference参数与默认行为该数据源支持以下参数来源website/docs/d/lb_hosted_zone_id.html.markdown参数类型必选说明regionstring否需要查询 Hosted Zone ID 的 AWS 区域名称。默认使用 Provider 配置 中设置的区域。load_balancer_typestring否负载均衡器类型可选值为application或network默认值为application。region的默认取值机制当不指定region时数据源读取 Provider 上下文中配置的区域。从源码实现看读取逻辑位于 internal/service/elbv2/hosted_zone_id_data_source.gofunc dataSourceHostedZoneIDRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics { lbType : awstypes.LoadBalancerTypeEnumApplication if v, ok : d.GetOk(load_balancer_type); ok { lbType awstypes.LoadBalancerTypeEnum(v.(string)) } switch region : meta.(*conns.AWSClient).Region(ctx); lbType { case awstypes.LoadBalancerTypeEnumApplication: ... case awstypes.LoadBalancerTypeEnumNetwork: ... } return diags }meta.(*conns.AWSClient).Region(ctx)取自 Provider 运行时上下文internal/conns包因此默认区域与 Provider 配置一致。同时该数据源标注了// Region(validateOverrideInPartitionfalse)允许显式覆盖区域并跳过分区校验这正是测试用例中显式指定eu-west-1能够生效的原因。load_balancer_type的取值约束数据源 schema 在 internal/service/elbv2/hosted_zone_id_data_source.go 中定义了类型约束load_balancer_type: { Type: schema.TypeString, Optional: true, Default: awstypes.LoadBalancerTypeEnumApplication, ValidateDiagFunc: validation.ToDiagFunc(validation.StringInSlice( enum.Slice(awstypes.LoadBalancerTypeEnumApplication, awstypes.LoadBalancerTypeEnumNetwork), false)), },即该参数仅接受application与network两个取值传入其他值会在校验阶段直接报错不传时默认为application。Attribute Reference导出属性该数据源在参数之外导出一个属性id—— 所选区域下对应负载均衡器类型的 AWS ELB Hosted Zone ID如Z35SXDOTRQ7X7K。需要注意文档明确指出该数据源导出属性仅id一个实际用法中应通过data.aws_lb_hosted_zone_id.xxx.id引用。源码级原理区域 → Hosted Zone ID 映射表该数据源的实现不调用任何 AWS API而是基于一组内置的静态映射表完成查询。ALB 与 NLB 各自拥有一张独立的映射表来源internal/service/elbv2/hosted_zone_id_data_source.gohostedZoneIDPerRegionALBMapALB 在每个区域对应的 Hosted Zone IDhostedZoneIDPerRegionNLBMapNLB 在每个区域对应的 Hosted Zone ID。从源码结构可以推断其查询流程根据load_balancer_type选择对应的映射表再以当前区域或显式指定的region为键查表命中则写入id未命中则返回错误unsupported ELBv2 Region (%s)。值得留意的是同一区域内 ALB 与 NLB 的 Zone ID 往往不同。例如在eu-west-1ALBZ32O12XQLNTSW2NLBZ2IFOLAFXWLO4F这意味着在为 NLB 创建别名记录时若忘记设置load_balancer_type network将拿到错误的 Zone ID导致 DNS 解析指向错误的托管区。这也是该参数存在的核心价值。与经典负载均衡Classic ELB数据源的差异本仓库还提供一个面向 Classic ELB 的数据源aws_elb_hosted_zone_id文档见 website/docs/d/elb_hosted_zone_id.html.markdown实现见 internal/service/elb/hosted_zone_id_data_source.go。两者核心差异如下对比项aws_lb_hosted_zone_idaws_elb_hosted_zone_id适用对象ALB / NLBELBv2Classic ELBload_balancer_type参数支持application/network不支持映射表ALB 与 NLB 各一张单一映射表未命中区域时错误信息unsupported ELBv2 Regionunsupported ELB Region从 internal/service/elb/hosted_zone_id_data_source.go 可以看到 Classic 版本仅维护一张hostedZoneIDPerRegionMap其部分区域取值与 ALB 相同如us-east-1均为Z35SXDOTRQ7X7K但不能覆盖 NLB 的差异化取值。如果你的基础设施使用 NLB请务必选择aws_lb_hosted_zone_id并显式声明类型。测试验证行为如何被保障仓库为数据源编写了完整的 acceptance test见 internal/service/elbv2/hosted_zone_id_data_source_test.go。测试用例覆盖了四种组合可作为最佳实践参考# 1. 默认场景当前区域 application默认类型 data aws_lb_hosted_zone_id main {} # 2. 显式指定区域eu-west-1的 ALB data aws_lb_hosted_zone_id regional { region eu-west-1 } # 3. 当前区域的 NLB data aws_lb_hosted_zone_id network { load_balancer_type network } # 4. 显式指定区域eu-west-1的 NLB data aws_lb_hosted_zone_id network-regional { region eu-west-1 load_balancer_type network }测试断言如TestAccELBV2HostedZoneIDDataSource_basic会校验默认调用返回的id等于HostedZoneIDPerRegionALBMap[acctest.Region()]显式region eu-west-1时 ALB 返回Z32O12XQLNTSW2、NLB 返回Z2IFOLAFXWLO4F。为保证测试可访问内部映射表仓库在 internal/service/elbv2/exports_test.go 中导出了HostedZoneIDPerRegionALBMap与HostedZoneIDPerRegionNLBMap注释明确说明“Exports for use in tests only”仅用于测试。使用注意事项与最佳实践NLB 必须显式声明类型默认值为application为 NLB 建别名记录时务必添加load_balancer_type network否则 Zone ID 错误区域自动跟随 Provider若你的 Provider 配置了region可省略数据源的region参数需要跨区域引用时再显式指定优先使用数据源而非硬编码不同区域、不同类型的 Zone ID 取值不同使用数据源可保持配置可移植region覆盖不校验分区数据源标注了validateOverrideInPartitionfalse允许指定任意区域值但未被映射表收录的区域会返回unsupported ELBv2 Region错误仅有一个导出属性该数据源导出id属性不要在配置中引用不存在的属性名。将上述要点与 示例用法 中的配置组合即可在任意区域稳定地为 ALB/NLB 生成正确的 Route 53 别名记录彻底告别手抄区域 Zone ID 的维护负担。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

MATLAB回声信号产生器设计与实现:从延迟叠加到反馈滤波器

MATLAB回声信号产生器设计与实现:从延迟叠加到反馈滤波器

简介:面向通信工程与数字信号处理课程的完整课设报告,围绕MATLAB回声信号产生器展开,系统覆盖回声产生、消除与信息隐藏三大任务,也适合信号处理初学者作为入门实践。报告从录制原声信号入手,先利用FFT完成频谱分析&am…

2026/9/19 21:51:49 阅读更多 →
网页设计与制作期末考试试题揭秘及保姆级建站教程避坑指南

网页设计与制作期末考试试题揭秘及保姆级建站教程避坑指南

网页设计与制作期末考试试题揭秘及保姆级建站教程避坑指南 找建站公司怕被坑高价?别慌,这份保姆级建站教程直接教你用网页设计与制作期末考试试题里的硬核知识,把网站安全做扎实,省下至少30%预算。很多创业者以为考过网页设计与制作期末考试试题就能轻松建站,结果上线后遭黑客攻击、数据泄露,修复成本远超初期投入…

2026/9/19 21:51:41 阅读更多 →
顺序表的实现及使用

顺序表的实现及使用

目录 一、顺序表的实现 ​编辑 二、ArrayList简介 三、ArrayList的使用 1.ArrayList的构造 2.ArrayLIst的常见操作 3.ArrayLIst的遍历操作 四、练习(使用顺序表写出杨辉三角) 一、顺序表的实现 这些代码的实现,放在此仓库中数据结构_Java: 用…

2026/9/19 21:50:48 阅读更多 →

最新新闻

ESP32 USB Host 方案全解析:Camera/Audio/4G 网络/存储/Hub 五大应用实战指南

ESP32 USB Host 方案全解析:Camera/Audio/4G 网络/存储/Hub 五大应用实战指南

ESP32 USB Host 方案全解析:Camera/Audio/4G 网络/存储/Hub 五大应用实战指南 【免费下载链接】esp-iot-solution Espressif IoT Library. IoT Device Drivers, Documentations and Solutions. 项目地址: https://gitcode.com/GitHub_Trending/es/esp-iot-solutio…

2026/9/19 22:39:12 阅读更多 →
正则化完全指南:从L1/L2本质到软阈值推导与调参实战

正则化完全指南:从L1/L2本质到软阈值推导与调参实战

训练集上loss一路狂掉到0.8个点,测试集上一跑直接崩回两位数的场景,我见过太多次了。每次有学生发消息问我“模型是不是过拟合了”,我都会先反问一句:“你上正则化了吗?”正则化(Regularization&#xff09…

2026/9/19 22:39:12 阅读更多 →
VFP9 默认字体 Arial 改宋体:这次让 Codex 走 TaoToken 改 VFP9CHS.DLL

VFP9 默认字体 Arial 改宋体:这次让 Codex 走 TaoToken 改 VFP9CHS.DLL

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

2026/9/19 22:39:12 阅读更多 →
react-spring 仓库实践:Spec Kit speckit-git-initialize 技能的 Git 仓库初始化与首次提交流程解析

react-spring 仓库实践:Spec Kit speckit-git-initialize 技能的 Git 仓库初始化与首次提交流程解析

react-spring 仓库实践:Spec Kit speckit-git-initialize 技能的 Git 仓库初始化与首次提交流程解析 【免费下载链接】react-spring ✌️ A spring physics based React animation library 项目地址: https://gitcode.com/gh_mirrors/re/react-spring 本篇技…

2026/9/19 22:39:12 阅读更多 →
MMDetection 标准数据集模型推理实战指南:Inferencer 高层接口、演示脚本与多模态推理全解析

MMDetection 标准数据集模型推理实战指南:Inferencer 高层接口、演示脚本与多模态推理全解析

人工智能计算机视觉深度学习模型评测 【免费下载链接】mmdetection OpenMMLab Detection Toolbox and Benchmark 项目地址: https://gitcode.com/gh_mirrors/mm/mmdetection 点击查看 免费下载 MMDetection 提供了大量预训练检测模型,推理(I…

2026/9/19 22:39:12 阅读更多 →
应变片压力传感器原理及现场应用要点

应变片压力传感器原理及现场应用要点

简介:围绕应变片压力传感器原理及应用,文档系统介绍了电阻应变片、瓷压力传感器、扩散硅压力传感器和蓝宝石压力传感器等常见类型。内容先以金属丝应变电阻的阻值变化公式入手,解释电阻应变效应,再结合应变电桥与信号放大流程&…

2026/9/19 22:38:12 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →