You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform的aws_secretsmanager_secret_version中替换值为base64编码的JSON内容

实现方案

你可以直接通过Terraform内置的jsonencode函数构造合法的JSON结构,避免手动转义引号出错,将base64encode(file("./src/secret.json"))作为config字段的值传入即可,修改后的资源定义如下:

resource "aws_secretsmanager_secret_version" "testtools" {
    secret_id     = aws_secretsmanager_secret.testtools.id
    secret_string = jsonencode({
        config = base64encode(file("./src/secret.json"))
    })
}

注意事项

  • 请确保./src/secret.json文件在Terraform执行时的工作目录下存在,否则file函数会读取失败抛出错误
  • 如果secret.json包含敏感信息,建议将该文件加入.gitignore,避免敏感数据误提交到代码仓库
  • 你可以通过terraform console命令提前验证编码结果:直接在控制台输入base64encode(file("./src/secret.json"))即可输出编码后的字符串,快速排查路径或格式问题

补充:如果坚持要手动拼接JSON字符串也可以使用插值语法,但是该写法容易出现转义错误,不推荐使用:

resource "aws_secretsmanager_secret_version" "testtools" {
    secret_id     = aws_secretsmanager_secret.testtools.id
    secret_string = "{\"config\":\"${base64encode(file("./src/secret.json"))}\"}"
}

内容的提问来源于stack exchange,提问作者Kaliph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:00:02