问题描述
我有一个 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。
在新版本中没有标识“父”调用者的字段,这些字段是空的:
Provider
、Source
、Ref Commit
、Trigger Id
、Trigger Type
、Trigger Name
、Trigger 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
提交请求