gpt4 book ai didi

google-cloud-platform - 将 Terraform 输出转储到本地文件

转载 作者:行者123 更新时间:2023-12-05 02:09:31 25 4
gpt4 key购买 nike

我想在一个目录中创建一个文件 (credentials.json),比如使用 Terraform 的 content

内容将是私有(private)服务帐户 key 的输出。

我正在使用以下代码创建服务帐户并获取其 data 的 key :

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}"
}

data "google_service_account_key" "my-account" {
name = "${google_service_account_key.cd.name}"
public_key_type = "TYPE_X509_PEM_FILE"
}

然后如何将其转储到本地文件?

我的用例是我想创建 credentials.json 以启用定期 backups jenkins 到谷歌云存储桶。

最佳答案

您可以使用 local_file resource在 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 创建或在不同状态文件中的资源的某些生成值时。

关于google-cloud-platform - 将 Terraform 输出转储到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com