Google cloud storage terraform中的base64编码md5哈希?

Google cloud storage terraform中的base64编码md5哈希?,google-cloud-storage,terraform,terraform-provider-gcp,Google Cloud Storage,Terraform,Terraform Provider Gcp,有没有办法在terraform中执行base64编码的md5哈希?据我所知,terraform只对原始字符串进行md5和base64编码 用例是我在terraform中创建了一个google云存储对象,但它说“detectmd5hash”属性每次都会改变,尽管它没有改变 resource "google_storage_bucket_object" "things" { name = "my-things" bucket = "my-google-cloud-storage-bu

有没有办法在terraform中执行base64编码的md5哈希?据我所知,terraform只对原始字符串进行md5和base64编码

用例是我在terraform中创建了一个google云存储对象,但它说“detectmd5hash”属性每次都会改变,尽管它没有改变

resource "google_storage_bucket_object" "things" {
  name    = "my-things"
  bucket  = "my-google-cloud-storage-bucket"
  content = "${local.thing_two}\n${local.thing_one}"
}
我希望我能做一些类似的事情:

resource "google_storage_bucket_object" "things" {
  name    = "my-things"
  bucket  = "my-google-cloud-storage-bucket"
  detectmd5hash = base64encode(md5("${local.thing_two}\n${local.thing_one}"))
  content = "${local.thing_two}\n${local.thing_one}"
}
但这是采用实际十六进制字符串的base64编码,而不是十六进制表示的字节——因此它与google存储的对象的实际md5不匹配(它以十六进制返回md5)


有什么解决方法或聪明的解决方案吗?

我们在AWS S3上遇到了类似的问题,我们通过以下方式解决了这个问题:

  • 设置一个计算文件散列的吞咽管道

  • 将该散列存储在.txt文件中(使用与原始文件相同的名称)

  • 上载文件和hash.txt文件

  • 然后对.txt文件使用
    base64encode
    进行版本控制

这在一段时间内奏效,但最终我们选择使用S3内置的对象版本控制,因为它更容易

我还没有在谷歌上使用过
terraform
,所以我不确定这是否有用,但请随意问我更多的东西