跳至主要内容

后端类型:http

使用简单的 REST 客户端存储状态。

状态将通过 GET 获取,通过 POST 更新,并通过 DELETE 清除。用于更新的方法是可配置的。

此后端可以选择性地支持 状态锁定。当启用锁定支持时,它将使用 LOCK 和 UNLOCK 请求在主体中提供锁定信息。当锁定已被占用时,端点应返回 423: Locked 或 409: Conflict 以及持有锁定的信息,成功时返回 200: OK。任何其他状态都将被视为错误。持有锁定的信息的 ID 将作为查询参数添加到状态更新请求中。

使用示例

代码块
terraform {
backend "http" {
address = "http://myrest.api.com/foo"
lock_address = "http://myrest.api.com/foo"
unlock_address = "http://myrest.api.com/foo"
}
}

数据源配置

代码块
data "terraform_remote_state" "foo" {
backend = "http"
config = {
address = "http://my.rest.api.com"
}
}

配置变量

支持以下配置选项/环境变量

  • address / TF_HTTP_ADDRESS - (必填) REST 端点的地址
  • update_method / TF_HTTP_UPDATE_METHOD - (可选) 更新状态时使用的 HTTP 方法。默认为 POST
  • lock_address / TF_HTTP_LOCK_ADDRESS - (可选) 锁定 REST 端点的地址。默认为禁用。
  • lock_method / TF_HTTP_LOCK_METHOD - (可选) 锁定时使用的 HTTP 方法。默认为 LOCK
  • unlock_address / TF_HTTP_UNLOCK_ADDRESS - (可选) 解锁 REST 端点的地址。默认为禁用。
  • unlock_method / TF_HTTP_UNLOCK_METHOD - (可选) 解锁时使用的 HTTP 方法。默认为 UNLOCK
  • username / TF_HTTP_USERNAME - (可选) HTTP 基本身份验证的用户名
  • password / TF_HTTP_PASSWORD - (可选) HTTP 基本身份验证的密码
  • skip_cert_verification - (可选) 是否跳过 TLS 验证。默认为 false
  • retry_max / TF_HTTP_RETRY_MAX – (可选) HTTP 请求重试次数。默认为 2
  • retry_wait_min / TF_HTTP_RETRY_WAIT_MIN – (可选) HTTP 请求尝试之间等待的最小时间(秒)。默认为 1
  • retry_wait_max / TF_HTTP_RETRY_WAIT_MAX – (可选) HTTP 请求尝试之间等待的最大时间(秒)。默认为 30

对于 mTLS 身份验证,可以设置以下三个选项

  • client_certificate_pem / TF_HTTP_CLIENT_CERTIFICATE_PEM - (可选) 服务器在双向 TLS (mTLS) 身份验证期间用于验证客户端的 PEM 编码证书。
  • client_private_key_pem /TF_HTTP_CLIENT_PRIVATE_KEY_PEM - (可选) PEM 编码私钥,如果指定了 client_certificate_pem,则需要此私钥。
  • client_ca_certificate_pem / TF_HTTP_CLIENT_CA_CERTIFICATE_PEM - (可选) 客户端在 TLS 身份验证期间用于验证服务器证书的 PEM 编码 CA 证书链。