google-cloud-platform - 尝试在 Deployment Manager 中创建服务帐户 key 时出错

标签 google-cloud-platform service-accounts google-deployment-manager

错误如下:

ERROR: (gcloud.deployment-manager.deployments.update) Error in Operation [operation-1544517871651-57cbb1716c8b8-4fa66ff2-9980028f]: errors:
- code: MISSING_REQUIRED_FIELD
  location: /deployments/infrastructure/resources/projects/resources-practice/serviceAccounts/storage-buckets-backend/keys/json->$.properties->$.parent
  message: |-
    Missing required field 'parent' with schema:
    {
      "type" : "string"
    }

以下是我的 jinja 模板内容:

resource:
- name: {{ name }}-keys
    type: iam.v1.serviceAccounts.key
    properties:
      name: projects/{{ properties["projectID"] }}/serviceAccounts/{{ serviceAccount["name"] }}/keys/json
      privateKeyType: enum(TYPE_GOOGLE_CREDENTIALS_FILE)
      keyAlgorithm: enum(KEY_ALG_RSA_2048)

附注 我对属性的引用基于 https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts.keys

最佳答案

为了社区的利益,我将发布 @John 的回复作为答案。

父级失踪,需要现有的 service account :

projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}

其中 ACCOUNT 值可以是服务帐户的电子邮件或唯一 ID。

关于模板,请删除包装 privateKeyType 和 keyAlgoritm 的枚举。

上述部署为现有服务帐户创建服务帐户凭据,为了检索此可下载的 json key 文件,可以使用 outputs 公开它。使用 publicKeyData 属性,然后对其进行 base64 解码。

关于google-cloud-platform - 尝试在 Deployment Manager 中创建服务帐户 key 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53720498/

相关文章:

java - 无法使用 Java 部署管理器 SDK 更新 GCP 部署

google-cloud-platform - 如何修复CloudRun错误 'The request was aborted because there was no available instance'

google-cloud-platform - 谷歌云,网址映射(负载均衡),减少更改生效时间

java - Google Analytics 4 - Java 中服务帐户 API 使用的简单示例?

spring-boot - 如何使用服务帐户在 Spring Boot 2.x 中调用 gmail api?

google-cloud-bigtable - 使用 Deployment Manager 部署 Google Cloud Bigtable

google-cloud-platform - 如何在 GCP 中的 DeploymentManager 创建 VM 实例时包含防火墙

jenkins - 让 jenkins 在不同节点池中的 gke 上生成代理

php - 我们可以在谷歌云 ubuntu vm 实例中使用 xampp 作为在线服务器吗

google-play - Google 收据验证 - 401 - permissionDenied