Terraform部署ElastiCache集群遇一元操作数错误求解决方案
问题解决方案
1. 修复transit_encryption_enabled赋值错误
你遇到的错误是因为代码里对布尔类型变量使用了一元负号运算符(-),这个运算符仅支持数字类型,而var.transit_encryption_enabled是布尔值true,导致类型不匹配。
直接修改main.tf对应行,去掉多余的负号:
transit_encryption_enabled = var.transit_encryption_enabled
2. 启用传输加密并配置认证令牌
要同时实现传输加密+带令牌启动,需注意仅Redis引擎支持认证令牌,Memcached不支持,以下是完整配置要点:
2.1 定义必要变量(若未定义)
在variables.tf中添加变量声明:
variable "transit_encryption_enabled" { type = bool description = "是否启用ElastiCache集群传输加密" default = false } variable "auth_token" { type = string description = "Redis集群认证令牌,启用传输加密时必填" sensitive = true # 标记为敏感数据,避免日志泄露 }
2.2 在xxx.tfvars传入参数
transit_encryption_enabled = true auth_token = "your-strong-complex-token" # 使用符合要求的强令牌
2.3 完善集群模块配置
确保引擎版本满足要求(Redis 3.2.6及以上支持传输加密和认证令牌),并传入对应参数:
module "elastic_cache_cluster" { source = "path/to/your/elasticache-module" # 基础配置 engine = "redis" engine_version = "6.2" # 选择兼容的版本 # 加密与认证配置 transit_encryption_enabled = var.transit_encryption_enabled auth_token = var.auth_token # 其他必填参数(如节点数、实例类型等) }
3. 验证配置
修改完成后重新执行命令确认:
terraform init terraform plan
检查计划输出中transit_encryption_enabled为true,auth_token以掩码形式显示(敏感数据保护),无报错即可执行部署。
内容的提问来源于stack exchange,提问作者kalyanasundaram E
相关产品推荐
相关产品推荐

