Terraform Random Provider

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。

用途#

生成名称后缀、密码等随机值,不需要外部服务或认证。值在资源创建时生成并保存在 state 中,后续 apply 会复用。

Resource 用途 常用输出
random_id 随机标识符、名称后缀 hex
random_string 自定义字符组成的字符串 result
random_password 随机密码 result
random_integer 指定范围内的整数 result
random_pet 可读的随机名称 id

示例#

以下配置可保存为 main.tf,无需单独编写 provider "random" {}。

terraform {
  required_providers {
    random = {
      source  = "hashicorp/random"
      version = "~> 3.0"
    }
  }
}

variable "name_generation" {
  type    = string
  default = "v1"
}

resource "random_id" "suffix" {
  byte_length = 4

  keepers = {
    generation = var.name_generation
  }
}

resource "random_password" "database" {
  length           = 24
  special          = true
  override_special = "!#$%&*+-=?"
}

output "resource_name" {
  value = "app-${random_id.suffix.hex}"
}

output "database_password" {
  value     = random_password.database.result
  sensitive = true
}
terraform init
terraform plan
terraform apply

byte_length = 4 生成 8 位十六进制后缀。修改 name_generation 会通过 keepers 触发 random_id 替换;密码资源不受该变量影响。

注意事项#

  • keepers 是重新生成的触发条件,不是随机种子;不要放密码或 timestamp()。
  • 随机后缀降低重名概率,不保证全局唯一。
  • 密码使用 random_password,字符规则需符合目标系统要求。
  • sensitive = true 隐藏常规输出,但密码仍保存在 state 和保存的 plan 中,需限制访问。
  • 替换随机资源可能使引用它的下游资源更新或重建,先检查 plan。

参考#

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭