小编kee*_*mel的帖子

Google Cloud Build 不会替换 cloudbuild.yaml 的 secrets 部分中的值

我正在尝试创建一个 Cloud Build 触发器,其中使用 Cloud KMS 对秘密环境变量进行加密并存储为 Cloud Build 中的替换变量。这样我的云构建 yaml 是相当通用的,并且在我们部署到的所有环境中都是相同的。

这个云构建 yaml 工作正常:

steps:
- name: 'ubuntu'
  entrypoint: 'bash'
  args: ['-c', 'echo "$$APP_NAME HAS A VALUE $$HELLO_WORLD"']
  env:
    - 'APP_NAME=${_APP_NAME}'
  secretEnv:
    - 'HELLO_WORLD'
secrets:
- kmsKeyName: 'projects/my-first-cicd-project/locations/europe-west1/keyRings/keyring-dev/cryptoKeys/key-backend'
  secretEnv:
    HELLO_WORLD: xxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

构建步骤生成此日志行:

My App Name HAS A VALUE Hello there world!
Run Code Online (Sandbox Code Playgroud)

完全符合预期。

现在对于不起作用的事情,或者至少我无法上班。假设我想让密钥环名称动态化。然后我将该 yaml 中的“keyring-dev”替换为${_KMS_KEYRING_NAME}. 这将产生如下错误:

invalid build: failed to check access to "projects/my-first-cicd-project/locations/europe-west1/keyRings/${_KMS_KEYRING_NAME}/cryptoKeys/key-backend"
Run Code Online (Sandbox Code Playgroud)

如果我将 YAML 中的 base64 字符串(以“CiQAH...”开头)更改为诸如 ${_KMS_VAR_HELLO_WORLD} 之类的替换变量,我将收到此错误:

failed unmarshalling build config cloudbuild.yaml: illegal …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-cloud-kms google-cloud-build

6
推荐指数
1
解决办法
1253
查看次数

无法使用 gcloud 将私有 IP (VPC) 添加到新的 Google Cloud SQL 实例

我一直在尝试创建一个新的 CloudSQL 实例,并从一开始就附加了私有 IP。文档唯一提示我的是添加 VPC 网络。我正在尝试添加默认的。

首先,我为我的项目启用正确的 API/服务:

gcloud services enable servicenetworking.googleapis.com servicemanagement.googleapis.com --project=my-project
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建 CloudSQL 实例:

gcloud beta sql instances create cloudsql-instance-name --region=europe-west1 --project=my-project --network=projects/my-project/global/networks/default
Run Code Online (Sandbox Code Playgroud)

然而,这给了我这个非描述性错误:

ERROR: (gcloud.beta.sql.instances.create) [INTERNAL_ERROR] Failed to create subnetwork. Please create Service Networking connection with service 'servicenetworking.googleapis.com' from consumer project '1234567890' network 'default' again.
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 这是在创建实例时添加私有 IP 的正确方法吗?或者还有其他方法吗?
  2. 为什么它给我这个错误,我该如何解决?

谢谢!

google-cloud-sql google-compute-engine google-cloud-platform

6
推荐指数
1
解决办法
5488
查看次数