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

Terraform中有没有简便方法可通过主机名获取对应的IP地址?

Terraform通过主机名获取对应IP的实现方案

你可以直接使用HashiCorp官方维护的DNS Provider的内置数据源实现该需求,无需自定义外部请求逻辑,具体用法如下:

  • 第一步:声明DNS Provider依赖
terraform {
  required_providers {
    dns = {
      source  = "hashicorp/dns"
      version = "~> 3.2"
    }
  }
}

provider "dns" {}

默认会使用Terraform运行环境的DNS配置执行解析,如需指定自定义DNS服务器,可以在provider配置中添加update { servers = ["8.8.8.8"] }参数指定。

  • 第二步:使用dns_a_record_set数据源获取主机名对应的IPv4地址
data "dns_a_record_set" "fetch_ip" {
  host = "google.com"
}
  • 第三步:直接引用数据源返回的IP即可
resource "null_resource" "temp" {
  # 单IP场景取下标为0的元素即可,多解析IP场景addrs会返回完整IP列表
  google_ip = data.dns_a_record_set.fetch_ip.addrs[0]
}

补充说明

  • 如需获取IPv6地址,将数据源替换为dns_aaaa_record_set即可,用法完全一致
  • 主机名不可带HTTP/HTTPS协议前缀,直接填写域名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:51:04