如何识别 cloudbuild 子任务

问题描述

我有一个 CloudBuild cloudbuild.yaml 文件,该文件定义了将 GCE 映像导出到 .vmdk 格式的存储桶的任务。

    gcloud compute images export \
    --image=$IMAGE_NAME \
    --destination-uri=$DESTINATION_BUCKET/$VMDK_NAME \
    --export-format=vmdk \
    --network=$NETWORK \
    --subnet=$subnet \
    --project=$PROJECT_ID \
    --async

gcloud compute images export 工作正常;该命令会触发子 CloudBuild 进行转换并上传到 gcs。

在新版本中没有标识“父”调用者的字段,这些字段是空的: ProviderSourceRef CommitTrigger IdTrigger TypeTrigger NameTrigger Description

如何识别这些子进程?

解决方法

有趣的问题。

我认为您可能无法执行此操作(请参阅下面的 Hack),因为没有您可以从父 Cloud Build 任务通过 gcloud compute images export ... 传递到子 Cloud Build 任务的用户可定义元数据。>

Hack 我还没试过!可能 (!?) 可以使用 --trace-token 标志将来自 Cloud Build 的跟踪令牌注入到调用 gcloud compute images export 命令的步骤中。您可以尝试(我没有尝试过)在 gcloud compute images export ... --trace-token=${SOMETHING} 上设置此标志,也许使用父级的 Cloud Build ID 的值?这应该通过后续的 API 调用传递,并希望至少可以到达子 Cloud Build。

我认为能够通过 Cloud SDK 命令传递任意元数据(标签?)是一个有用的功能请求。您应该考虑向 Google 的 Issue Tracker for Cloud SDK

提交请求

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...