#amazon-s3 #terraform #ibm-cloud #cloud-object-storage #terraform-provider-ibm
#amazon-s3 #terraform #ibm-cloud #cloud-object-storage #terraform-provider-ibm
Вопрос:
Я пытаюсь использовать учетные данные HMAC для облачного хранилища объектов / S3 в Terraform, но вижу эту ошибку.
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.
Я сгенерировал учетные данные COS HMAC HMAC=true
, установив при создании cos_key
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",
...
}
}
}
Ответ №1:
Это то, что сработало для меня
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
}
}
Проблема здесь в пользовательских свойствах json, которые включают точки (.), подобные cos_hmac_keys.access_key_id
. Terraform выдает ошибку, пока вы не используете приведенную ниже запись
credentials["cos_hmac_keys.access_key_id"]