繁体   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