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