查看作业和任务

本文档介绍了如何查看 Batch 作业和任务。

准备工作

  1. 如果您之前未使用过 Batch,请查看开始使用 Batch,并完成项目和用户的前提条件以启用 Batch。
  2. 如需获得查看批量作业和任务所需的权限,请让管理员向您授予项目的 Batch Job Viewer (roles/batch.jobsViewer) 或 Batch Job Editor (roles/batch.jobsEditor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

查看您的作业

如需查看作业,请选择以下方法之一:

查看作业列表

您可以使用Google Cloud 控制台、gcloud CLI、Batch API、Go、Java、Node.js、Python 或 C++ 查看当前项目中的作业列表。

控制台

  1. 如需使用Google Cloud 控制台查看当前项目中的作业列表,请前往作业列表页面。

    前往“作业列表”

    作业列表可能包含多个页面。 如果您需要继续前往下一页,请点击屏幕底部的 下一页

  2. 可选:如果您想过滤作业列表,请点击 过滤条件。然后,输入或选择一个属性和一个值。

    例如,如需过滤列表以仅包含处于特定状态的作业,请输入以下内容:

    Status:JOB_STATE
    

    JOB_STATE 替换为作业状态,例如 FAILED

gcloud

查看所有招聘信息

如需使用 gcloud CLI 查看当前项目中的作业列表,请使用 gcloud batch jobs list 命令

gcloud batch jobs list

查看过滤后的作业列表

您可以选择添加一个或多个标志,以查看过滤后的作业列表:

  • 如需仅查看特定位置的作业,请添加 --location 标志。

  • 如需仅查看符合过滤表达式的作业,请指定 --filter 标志。

例如,使用以下命令:

gcloud batch jobs list \
    --location=LOCATION \
    --filter="FILTER_EXPRESSION"

替换以下内容:

  • LOCATION:一个或多个作业所在的位置

  • FILTER_EXPRESSION:用于定义要列出的作业的过滤条件表达式。过滤表达式必须定义一个或多个以零个或多个布尔运算符(ANDORNOT分隔的属性-值对。

    例如,请参阅以下过滤表达式:

    • 根据作业状态进行过滤:如需仅查看处于特定状态的作业,请使用以下过滤表达式:

      status.state="JOB_STATE"
      

      JOB_STATE 替换为作业状态,例如 FAILED

    • 基于标签进行过滤:假设您的项目已定义以下自定义标签:

      • 为了在您查看 Cloud Billing 报告时指明研究团队创建的作业及其资源,您的部分作业及其资源会有一个 team 标签,该标签设置为 research

      • 为了指示对时间敏感的工作负载,某些作业具有 deadline 标签,该标签设置为各种值。

      • 为了指示开发团队已成功测试的可运行对象,某些可运行对象具有设置为 truetested 标签。

      然后,您可以指定以下过滤表达式:

      (allocationPolicy.labels.team=research) AND ((labels.deadline:*) OR (runnables.labels.tested=true))
      

      此过滤表达式仅列出满足以下所有条件的作业:

      • 来自研究团队的作业,其作业分配政策的 team 标签设置为 research

      • 满足以下至少一项条件的作业:

        • 对时间敏感的作业,即作业上设置了 deadline 标签且该标签的值为任意值。

        • 至少有一个可运行对象已成功测试的作业,即至少有一个可运行对象的 tested 标签设置为 true 的作业。

API

查看所有招聘信息

如需使用 Batch API 查看当前项目中特定位置的作业列表,请向 jobs.list 方法发出 GET 请求。

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs

替换以下内容:

  • PROJECT_ID:当前项目的项目 ID

  • LOCATION:作业所在的位置

查看过滤后的作业列表

(可选)您可以指定 filter 查询参数,以查看根据过滤表达式过滤后的作业列表。

例如,发出以下 GET 请求:

GET https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs?filter=FILTER_EXPRESSION

FILTER_EXPRESSION 替换为使用网址编码过滤表达式。过滤表达式必须定义一个或多个以零个或多个布尔运算符(ANDORNOT分隔的属性-值对。

例如,请参阅以下过滤表达式:

  • 根据作业状态进行过滤:如需仅查看处于特定状态的作业,请使用以下过滤表达式:

    status.state="JOB_STATE"
    

    JOB_STATE 替换为作业状态,例如 FAILED

  • 基于标签进行过滤:假设您的项目已定义以下自定义标签:

    • 为了在您查看 Cloud Billing 报告时指明研究团队创建的作业及其资源,您的部分作业及其资源会有一个 team 标签,该标签设置为 research

    • 为了指示对时间敏感的工作负载,某些作业具有 deadline 标签,该标签设置为各种值。

    • 为了指示开发团队已成功测试的可运行对象,某些可运行对象具有设置为 truetested 标签。

    然后,您可以指定以下过滤表达式:

    (allocationPolicy.labels.team%3Dresearch)%20AND%20((labels.deadline%3A*)%20OR%20(runnables.labels.tested%3Dtrue))
    

    此过滤表达式仅列出满足以下所有条件的作业:

    • 来自研究团队的作业,其作业分配政策的 team 标签设置为 research

    • 满足以下至少一项条件的作业:

      • 对时间敏感的作业,即作业上设置了 deadline 标签且该标签的值为任意值。

      • 至少有一个可运行对象已成功测试的作业,即至少有一个可运行对象的 tested 标签设置为 true 的作业。

Go

Go

如需了解详情,请参阅 Batch Go API 参考文档

如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
	"google.golang.org/api/iterator"
)

// Lists all jobs in the given project and region
func listJobs(w io.Writer, projectID, region string) error {
	// projectID := "your_project_id"
	// region := "us-central1"

	ctx := context.Background()
	batchClient, err := batch.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer batchClient.Close()

	req := &batchpb.ListJobsRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, region),
	}

	var jobs []*batchpb.Job
	it := batchClient.ListJobs(ctx, req)

	for {
		job, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("unable to list jobs: %w", err)
		}
		jobs = append(jobs, job)
	}

	fmt.Fprintf(w, "Jobs: %v\n", jobs)

	return nil
}

Java

Java

如需了解详情,请参阅 Batch Java API 参考文档

如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证

import com.google.cloud.batch.v1.BatchServiceClient;
import com.google.cloud.batch.v1.Job;
import java.io.IOException;

public class ListJobs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";

    // Name of the region hosting the jobs.
    String region = "europe-central2";

    listJobs(projectId, region);
  }

  // Get a list of all jobs defined in given region.
  public static void listJobs(String projectId, String region) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `batchServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (BatchServiceClient batchServiceClient = BatchServiceClient.create()) {

      // Construct the parent path of the job.
      String parent = String.format("projects/%s/locations/%s", projectId, region);

      for (Job job : batchServiceClient.listJobs