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 applybyte_length = 4 生成 8 位十六进制后缀。修改 name_generation 会通过 keepers 触发 random_id 替换;密码资源不受该变量影响。
注意事项#
keepers是重新生成的触发条件,不是随机种子;不要放密码或timestamp()。- 随机后缀降低重名概率,不保证全局唯一。
- 密码使用
random_password,字符规则需符合目标系统要求。 sensitive = true隐藏常规输出,但密码仍保存在 state 和保存的 plan 中,需限制访问。- 替换随机资源可能使引用它的下游资源更新或重建,先检查 plan。