有什么方法可以让作者在 python 中执行 gcp cloud run 作业吗?
例如,当我运行
gcloud run jobs executions list
时,我可以看到创建它的作者(RUN BY
列):
JOB EXECUTION REGION RUNNING COMPLETE CREATED RUN BY
✔ my-job my-job-lj2op us-west1 0 1 / 1 2024-11-09 12:00:00 UTC [email protected]
如果我以调试详细程度运行命令,我可以看到使用的 api 是
GET /apis/run.googleapis.com/v1/namespaces/oxa-dev-loc-data-connector/executions?alt=json&limit=100 HTTP/1.1
,但是如果我使用 python sdk run_v2.ListExecutionsRequest
调用,则不存在作者字段。有没有其他方法可以通过 python sdk 获取它?
--verbosity=debug
的替代方案是 --log-http
,它显示底层 REST 调用、请求和响应。然后,您可以使用 Google 的 APIs Explorer 查找文档,例如云跑.
gcloud run jobs execution list
调用 namespaces.executions.list
,返回 Response,它是 Execution
的列表,并包含各种 metadata.annotations
:
例如:
metadata:
annotations:
run.googleapis.com/client-name: gcloud
run.googleapis.com/client-version: 499.0.0
run.googleapis.com/creator: {USER}
run.googleapis.com/execution-environment: gen2
run.googleapis.com/lastModifier: {USER}
run.googleapis.com/operation-id: 12345678-1234-1234-1234-1234567890ab
我不确定“RUN BY”是否映射到
creator
或lastModifier
但是...
gcloud run jobs executions list \
--project=${PROJECT} \
--region=${REGION} \
--format='yaml(metadata.annotations["run.googleapis.com/creator"])'
metadata:
annotations:
run.googleapis.com/creator: [email protected]
或者,如果您更喜欢更通用的 (JSON) 解决方案:
gcloud run jobs executions list \
--project=${PROJECT} \
--region=${REGION} \
--format=json \
| jq -r '.[].metadata.annotations["run.googleapis.com/creator"]'