Terraform从0.13升级到最新版后输出带引号引发S3上传失败
解决Terraform升级后S3桶名输出带引号的问题
问题原因
Terraform 0.12及后续版本引入了原生表达式语法,旧版本中单独使用${}插值语法的写法,在v1.3.7中会被解析为带引号的字符串字面量输出,而0.13版本对旧语法的兼容逻辑与新版本不同,导致了输出结果的差异。
解决方案
修改output配置,移除旧的插值语法,直接引用资源属性:
output "bucket-name-output" { value = aws_s3_bucket.logos-bucket.id }
如果需要明确指定输出类型以避免歧义,可以添加type字段:
output "bucket-name-output" { value = aws_s3_bucket.logos-bucket.id type = string }
验证
执行terraform apply应用修改后的配置,再通过terraform output bucket-name-output查看结果,此时输出的桶名将是不带引号的logo-horizon-bucket,Golang应用调用S3时就不会触发InvalidBucketName错误。
内容的提问来源于stack exchange,提问作者user1974753
相关产品推荐
相关产品推荐

