尝试在Terraform中使用COS HMAC凭据时,此值没有任何属性错误吗?

问题描述

我正在尝试将HMAC凭据用于Terraform中的Cloud Object Storage / S3,但看到此错误。

Error: Unsupported attribute

  on main.tf line 56,in resource "ibm_cos_bucket" "sink_bucket":
  56:       ACCESS_KEY               = ibm_resource_key.cos_key.credentials.cos_hmac_keys.access_key_id

This value does not have any attributes.


Error: Unsupported attribute

  on main.tf line 57,in resource "ibm_cos_bucket" "sink_bucket":
  57:       SECRET_ACCESS_KEY        = ibm_resource_key.cos_key.credentials.cos_hmac_keys.secret_access_key

This value does not have any attributes.

我通过在创建HMAC=true时设置cos_key来生成COS HMAC凭证

resource ibm_resource_key cos_key {
  name                 = "${var.basename}-cos-key"
  resource_instance_id = ibm_resource_instance.cos.id
  role                 = "Writer"

  parameters = {
    service-endpoints = "private"
    HMAC = true
  }
}

当我检查terraform.tstate文件时,我看到如下所示的凭据

"cos_key": {
      "value": {
        "credentials": {
          "apikey": "muydB9TyqWr9_aCmFlSRSu-JG3J3PPzXcxxxxxxx","cos_hmac_keys.access_key_id": "e0892b46cfe1411cxxxxxx0","cos_hmac_keys.secret_access_key": "8520aca8680e3e930f74a8869xxxxxx8a27a6",...
          }
        }
      }

解决方法

这对我有用

provisioner "local-exec" {
    command = "echo 'Credentials for MINIO client...'"
    environment = {
      ACCESS_KEY               = ibm_resource_key.cos_key.credentials["cos_hmac_keys.access_key_id"]
      SECRET_ACCESS_KEY        = ibm_resource_key.cos_key.credentials["cos_hmac_keys.secret_access_key"]
      COS_REGION               = var.region
      COS_BUCKET_NAME          = ibm_cos_bucket.sink_bucket.bucket_name
    }
  }

这里的问题是包括cos_hmac_keys.access_key_id之类的点(。)的自定义json属性。 Terraform会引发错误,直到您使用以下符号

credentials["cos_hmac_keys.access_key_id"]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...