Вы можете использовать ресурс local_file
для записи данных на диск в прогоне Terraform.
Таким образом, вы можете сделать что-то вроде следующего:
resource "google_service_account" "my-account" {
account_id = "${var.account_id}"
project = "${var.project_id}"
}
resource "google_service_account_key" "my-account" {
service_account_id = "${google_service_account.my-account.name}"
}
resource "local_file" "key" {
filename = "/path/to/key/output"
content = "${base64decode(google_service_account_key.my-account.private_key)}"
}
Обратите внимание, что вам никогда не потребуется источник данных для просмотра выходных данных ресурса, который вы создаете в той же команде Terraform. В этом случае вы можете отказаться от источника данных google_service_account_key
, потому что у вас есть ресурс, доступный для вас.
Преимущество источников данных заключается в том, что вам нужно искать какое-то сгенерированное значение ресурса, либо не созданного Terraform. или в другом файле состояния.