Terraform HTTP Provider
验证:未记录
- 适用版本
- 未记录
- 验证范围
- 尚未登记验证记录。
本文缩写(英文全称与中文含义)
| 缩写 | 英文全称/名称 | 中文含义 |
|---|---|---|
| API | Application Programming Interface | 应用程序编程接口 |
| HTTP | Hypertext Transfer Protocol | 超文本传输协议 |
| HTTPS | Hypertext Transfer Protocol Secure | 使用 TLS 加密的 HTTP |
用途#
使用 data "http" 读取 HTTP 接口,获取配置或元数据。它是查询工具,不管理远程 API 对象的生命周期。
示例#
读取 HashiCorp 的版本查询接口。Terraform 执行端需要能够访问该地址。
terraform {
required_version = ">= 1.2.0"
required_providers {
http = {
source = "hashicorp/http"
version = "~> 3.0"
}
}
}
data "http" "terraform_version" {
url = "https://checkpoint-api.hashicorp.com/v1/check/terraform"
request_timeout_ms = 5000
request_headers = {
Accept = "application/json"
}
lifecycle {
postcondition {
condition = self.status_code == 200
error_message = "Version API must return HTTP 200."
}
}
}
output "latest_terraform_version" {
value = jsondecode(data.http.terraform_version.response_body).current_version
}注意事项#
- 参数已知时,查询通常发生在 plan / refresh 阶段,接口可用性会影响规划。
- 支持
GET、HEAD、POST;POST也应仅用于搜索等只读操作。 - HTTP 200 不保证业务数据有效,解析时仍需确认响应格式和字段。
- 请求头和响应可能进入 state;不要把它当作不留痕的密钥读取通道。
- 保持 HTTPS 证书校验;不要通过
insecure = true绕过证书问题。