1

我正在使用 terraform 资源 google_firestore_document 来创建 firestor 文档数据库,并且我成功地创建了它。我正在尝试将其转换为需要以 jsonencode 格式构建值的模块。例子:

 ` + fields      = jsonencode(
        {
          + akey      = {
              + stringValue = "avalue"
            }
          + createdBy = {
              + stringValue = "xyz"
            }
        }
    )`

我创建了一个变量,如下所示。

`variable "fields" {
    description = "field details"
    default = {"fname":{"stringValue":"xyz"}}
}`

main.tf 是:

   ` resource "google_firestore_document" "default" {
    project     = "var.project"
    collection  = "var.collection"
    document_id = "var.document_id"
    fields = jsonencode({ fields = var.fields})
  }`

输出是并且不正确。

  ` + fields      = jsonencode(
        {
          + fields = {
              + fname = {
                  + stringValue = "xyz"
                }
            }
        }
      )`

我尝试构建,fields = jsonencode({var.fields})但它说需要一个等号(“=”)来标记属性值的开头请让我知道我们如何在没有两个字段部分的情况下实现它。

4

1 回答 1

0

我认为你应该使用=而不是:在变量定义中。我在这篇文章中找到了例子。我认为这将是这样的:

`variable "fields" {
    description = "field details"
    default = {
      "fname" = {
         "stringValue" = "xyz"
      }
    }
}`

虽然我没有操场来测试它(所以请将其视为伪代码)。

于 2021-03-19T14:41:24.477 回答