簡體   English   中英

Google Dataflow API 按作業名稱過濾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM