[英]Google Dataflow API Filter by Job Name
有沒有辦法使用 REST API 按作業名稱過濾數據流作業? 我正在尋找一種方法來獲取按工作名稱篩選的工作詳細信息列表。 目前,我可以通過雲數據流控制台來完成,但不能通過數據流 rest api 來完成。
獲取 /v1b3/projects/{projectId}/jobs
在 Dataflow 控制台中執行的過濾器不是 API 的一部分(似乎請求 Dataflow API 來獲取作業,但前端層是執行過濾功能的層)。
因此,您可以按照相同的步驟進行復制:
1- 要列出所有區域的所有作業,請使用projects.jobs.aggregated (GET/v1b3/projects/{projectId}/jobs: aggregated)。 此外,此方法允許您預先過濾指定作業狀態的作業。
不推薦使用 Projects.jobs.list (GET/v1b3/projects/{projectId}/jobs),因為您只能獲取在 us-central1 中運行的作業列表。
2- 上面提到的兩種方法,都返回一個 JSON ListJobsResponse對象,該對象包含一個 Jobs 列表。 因此,您可以使用某種編程語言(如 Python)迭代此列表,並通過作業名稱上的正則表達式過濾作業以獲得所需的作業:
import json
import re
desired_name = 'REGEX_STRING'
filtered_jobs = list()
with open('ListJobsResponse.json') as json_file:
response_dict = json.load(json_file)
jobs = response_dict['jobs']
for j in jobs:
x = re.search(desired_name, j['name'])
if x:
filtered_jobs.append(j)
print(filtered_jobs)
您可以在使用以下 API 時按名稱過濾數據流作業。
API 參考: https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs/aggregated
API 方法:
GET https://dataflow.googleapis.com/v1b3/projects/{projectId}/jobs:aggregated
or
GET https://dataflow.googleapis.com/v1b3/projects/{projectId}/jobs
parameters (works for both APIs):
name: name of the dataflow job
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.