Jobs und Aufgaben ansehen

In diesem Dokument wird beschrieben, wie Sie Batchjobs und ‑aufgaben aufrufen.

Hinweise

  1. Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Hilfeartikel Batch-Dateien erstellen und ausführen und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Batch Job Viewer (roles/batch.jobsViewer) oder Batch Job Editor (roles/batch.jobsEditor) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen von Jobs und Aufgaben benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Aufgaben ansehen

Sie haben folgende Möglichkeiten, Ihre Jobs aufzurufen:

Liste Ihrer Jobs aufrufen

Sie können eine Liste der Jobs im aktuellen Projekt über dieGoogle Cloud -Console, die gcloud CLI, die Batch API, Go, Java, Node.js, Python oder C++ aufrufen.

Console

  1. Wenn Sie in derGoogle Cloud -Console eine Liste der Jobs im aktuellen Projekt aufrufen möchten, rufen Sie die Seite Jobliste auf.

    Jobliste aufrufen

    Die Liste der Jobs kann mehrere Seiten umfassen. Wenn Sie mit der nächsten Seite fortfahren möchten, klicken Sie unten auf dem Bildschirm auf Weiter.

  2. Optional: Wenn Sie die Liste der Jobs filtern möchten, klicken Sie auf Filter. Geben Sie dann eine Property und einen Wert ein oder wählen Sie sie aus.

    Wenn Sie die Liste beispielsweise so filtern möchten, dass nur Jobs in einem bestimmten Status enthalten sind, geben Sie Folgendes ein:

    Status:JOB_STATE
    

    Ersetzen Sie JOB_STATE durch einen Jobstatus, z. B. FAILED.

gcloud

Alle Jobs ansehen

Wenn Sie mit der gcloud CLI eine Liste der Jobs im aktuellen Projekt aufrufen möchten, verwenden Sie den Befehl gcloud batch jobs list.

gcloud batch jobs list

Gefilterte Liste der Jobs aufrufen

Optional können Sie ein oder mehrere Flags hinzufügen, um eine gefilterte Liste von Jobs aufzurufen:

  • Wenn Sie nur Jobs an einem bestimmten Standort sehen möchten, fügen Sie das Flag --location hinzu.

  • Wenn Sie nur Jobs auf Grundlage eines Filterausdrucks sehen möchten, geben Sie das Flag --filter an.

Verwenden Sie zum Beispiel den folgenden Befehl:

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

Ersetzen Sie Folgendes:

  • LOCATION: Der Standort, an dem sich eine oder mehrere Jobs befinden.

  • FILTER_EXPRESSION: ein Filterausdruck, der die Jobs definiert, die aufgelistet werden sollen. Der Filterausdruck muss ein oder mehrere Attribut/Wert-Paare definieren, die durch null oder mehr boolesche Operatoren (AND, OR und NOT) getrennt sind.

    Beispiele für Filterausdrücke:

    • Nach Jobstatus filtern:Wenn Sie nur Jobs sehen möchten, die sich in einem bestimmten Status befinden, verwenden Sie den folgenden Filterausdruck:

      status.state="JOB_STATE"
      

      Ersetzen Sie JOB_STATE durch einen Jobstatus, z. B. FAILED.

    • Nach Labels filtern:Angenommen, in Ihrem Projekt sind die folgenden benutzerdefinierten Labels definiert:

      • Damit in Cloud Billing-Berichten Jobs und ihre Ressourcen angezeigt werden, die von Ihrem Rechercheteam erstellt wurden, haben einige Ihrer Jobs und ihre Ressourcen das Label team, das auf research festgelegt ist.

      • Um zeitkritische Arbeitslasten zu kennzeichnen, haben einige Jobs das Label deadline, das auf verschiedene Werte festgelegt ist.

      • Um ausführbare Programme anzugeben, die Ihr Entwicklungsteam erfolgreich getestet hat, haben einige ausführbare Programme ein tested-Label, das auf true gesetzt ist.

      Sie können dann den folgenden Filterausdruck angeben:

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

      Mit diesem Filterausdruck werden nur Jobs aufgelistet, die alle folgenden Kriterien erfüllen:

      • Jobs vom Rechercheteam, die in der Zuweisungsrichtlinie des Jobs das Label team haben, das auf research festgelegt ist.

      • Stellen, die mindestens eines der folgenden Kriterien erfüllen:

        • Zeitkritische Jobs, die ein deadline-Label haben, das auf einen beliebigen Wert festgelegt ist.

        • Jobs mit mindestens einem ausführbaren Element, das erfolgreich getestet wurde. Das sind Jobs mit mindestens einem ausführbaren Element mit einem tested-Label, das auf true festgelegt ist.

API

Alle Jobs ansehen

Wenn Sie mit der Batch API eine Liste der Jobs im aktuellen Projekt für einen bestimmten Standort aufrufen möchten, senden Sie eine GET-Anfrage an die Methode jobs.list.

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID Ihres aktuellen Projekts.

  • LOCATION: den Standort, an dem die Jobs vorhanden sind.

Gefilterte Liste der Jobs aufrufen

Optional können Sie den Abfrageparameter filter angeben, um eine gefilterte Liste von Jobs basierend auf einem Filterausdruck aufzurufen.

Stellen Sie beispielsweise die folgende GET-Anfrage:

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

Ersetzen Sie FILTER_EXPRESSION durch einen Filterausdruck, der die URL-Codierung verwendet. Der Filterausdruck muss ein oder mehrere Feld/Wert-Paare definieren, die durch null oder mehrere boolesche Operatoren (AND, OR und NOT) getrennt sind.

Beispiele für Filterausdrücke:

  • Nach Jobstatus filtern:Wenn Sie nur Jobs sehen möchten, die sich in einem bestimmten Status befinden, verwenden Sie den folgenden Filterausdruck:

    status.state="JOB_STATE"
    

    Ersetzen Sie JOB_STATE durch einen Jobstatus, z. B. FAILED.

  • Nach Labels filtern:Angenommen, in Ihrem Projekt sind die folgenden benutzerdefinierten Labels definiert:

    • Damit in Cloud Billing-Berichten Jobs und ihre Ressourcen angezeigt werden, die von Ihrem Rechercheteam erstellt wurden, haben einige Ihrer Jobs und ihre Ressourcen das Label team, das auf research festgelegt ist.

    • Um zeitkritische Arbeitslasten zu kennzeichnen, haben einige Jobs das Label deadline, das auf verschiedene Werte festgelegt ist.

    • Um ausführbare Programme anzugeben, die Ihr Entwicklungsteam erfolgreich getestet hat, haben einige ausführbare Programme ein tested-Label, das auf true gesetzt ist.

    Sie können dann den folgenden Filterausdruck angeben:

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

    Mit diesem Filterausdruck werden nur Jobs aufgelistet, die alle folgenden Kriterien erfüllen:

    • Jobs vom Rechercheteam, die in der Zuweisungsrichtlinie des Jobs das Label team haben, das auf research festgelegt ist.

    • Stellen, die mindestens eines der folgenden Kriterien erfüllen:

      • Zeitkritische Jobs, die ein deadline-Label haben, das auf einen beliebigen Wert festgelegt ist.

      • Jobs mit mindestens einem ausführbaren Element, das erfolgreich getestet wurde. Das sind Jobs mit mindestens einem ausführbaren Element mit einem tested-Label, das auf true festgelegt ist.

Go

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Go API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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(parent).iterateAll()) {
        System.out.println(job.getName());
      }
      System.out.println("Listed all batch jobs.");
    }
  }
}

Node.js

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Node.js API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callListJobs() {
  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${region}`,
  };

  // Run request
  const iterable = await batchClient.listJobsAsync(request);
  for await (const response of iterable) {
    console.log(response);
  }
}

await callListJobs();

Python

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Python API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from __future__ import annotations

from collections.abc import Iterable

from google.cloud import batch_v1


def list_jobs(project_id: str, region: str) -> Iterable[batch_v1.Job]:
    """
    Get a list of all jobs defined in given region.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosting the jobs.

    Returns:
        An iterable collection of Job object.
    """
    client = batch_v1.BatchServiceClient()

    return client.list_jobs(parent=f"projects/{project_id}/locations/{region}")

C++

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id) {
    auto const parent = "projects/" + project_id + "/locations/" + location_id;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    int i = 0;
    for (auto job : client.ListJobs(parent)) {
      if (!job) throw std::move(job).status();
      std::cout << "Job[" << i++ << "]  " << job->DebugString() << "\n";
    }
  }

Details zu einem Job aufrufen

Sie können die Details eines Jobs im aktuellen Projekt mit derGoogle Cloud Console, der gcloud CLI, der Batch API, Go, Java, Node.js, Python oder C++ aufrufen.

Console

So rufen Sie in derGoogle Cloud -Console die Details eines Jobs im aktuellen Projekt auf:

  1. Rufen Sie in der Google Cloud -Console die Seite Aufgabenliste auf.

    Jobliste aufrufen

  2. Klicken Sie in der Spalte Jobname auf den Namen eines Jobs.

    Die Seite Jobdetails wird aufgerufen.

    Der Tab Details ist standardmäßig geöffnet. Klicken Sie auf die anderen Tabs, um weitere Informationen zu erhalten.

gcloud

Wenn Sie die Details eines Jobs im aktuellen Projekt mit der gcloud CLI aufrufen möchten, verwenden Sie den Befehl gcloud batch jobs describe mit dem Flag --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • JOB_NAME: der Name eines vorhandenen Jobs.

  • LOCATION: den Speicherort, an dem sich der Job befindet.

API

Wenn Sie die Details eines Jobs im aktuellen Projekt mit der Batch API aufrufen möchten, senden Sie eine GET-Anfrage an die Methode jobs.get.

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID des aktuellen Projekts.

  • LOCATION: den Speicherort, an dem sich der Job befindet.

  • JOB_NAME: der Name eines vorhandenen Jobs.

Go

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Go API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
)

// Retrieves the information about the specified job, most importantly its status
func getJob(w io.Writer, projectID, region, jobName string) (*batchpb.Job, error) {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"

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

	req := &batchpb.GetJobRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/jobs/%s", projectID, region, jobName),
	}

	response, err := batchClient.GetJob(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("unable to get job: %w", err)
	}

	fmt.Fprintf(w, "Job info: %v\n", response)

	return response, nil
}

Java

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

public class GetJob {

  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 hosts the job.
    String region = "europe-central2";

    // The name of the job you want to retrieve information about.
    String jobName = "JOB_NAME";

    getJob(projectId, region, jobName);
  }

  // Retrieve information about a Batch Job.
  public static void getJob(String projectId, String region, String jobName) 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()) {

      Job job =
          batchServiceClient.getJob(
              JobName.newBuilder()
                  .setProject(projectId)
                  .setLocation(region)
                  .setJob(jobName)
                  .build());

      System.out.printf("Retrieved the job: %s ", job.getName());
    }
  }
}

Node.js

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Node.js API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job you want to retrieve information about.
 */
// const jobName = 'YOUR_JOB_NAME';

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callGetJob() {
  // Construct request
  const request = {
    name: `projects/${projectId}/locations/${region}/jobs/${jobName}`,
  };

  // Run request
  const response = await batchClient.getJob(request);
  console.log(response);
}

await callGetJob();

Python

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Python API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


from google.cloud import batch_v1


def get_job(project_id: str, region: str, job_name: str) -> batch_v1.Job:
    """
    Retrieve information about a Batch Job.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosts the job.
        job_name: the name of the job you want to retrieve information about.

    Returns:
        A Job object representing the specified job.
    """
    client = batch_v1.BatchServiceClient()

    return client.get_job(
        name=f"projects/{project_id}/locations/{region}/jobs/{job_name}"
    )

C++

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id) {
    auto const name = "projects/" + project_id + "/locations/" + location_id +
                      "/jobs/" + job_id;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    auto response = client.GetJob(name);
    if (!response) throw std::move(response).status();
    std::cout << "GetJob() succeeded with " << response->DebugString() << "\n";
  }

Aufgaben ansehen

Sie haben folgende Möglichkeiten, die Aufgaben für einen Ihrer Jobs aufzurufen:

Liste der Aufgaben eines Jobs ansehen

Sie können eine Liste der Aufgaben in einem Job oder der Aufgabengruppe eines Jobs mit derGoogle Cloud -Console, der gcloud CLI, der Batch API, Go, Java, Node.js, Python oder C++ aufrufen.

Wenn Sie eine Liste von Aufgaben in einem Job oder in der Aufgabengruppe eines Jobs filtern möchten, z. B. nur die Aufgaben auflisten möchten, die erfolgreich ausgeführt wurden, müssen Sie die gcloud CLI oder die Batch API verwenden.

Console

Wenn Sie in derGoogle Cloud -Console eine Zusammenfassung der Aufgaben eines Jobs aufrufen möchten, rufen Sie die Details eines Jobs auf, um die Seite Jobdetails zu öffnen. Weitere Informationen finden Sie im Abschnitt Aufgabendetails.

gcloud

Wenn Sie mit der gcloud CLI eine Liste der Aufgaben in der Aufgabengruppe eines Jobs aufrufen möchten, verwenden Sie den Befehl gcloud batch tasks list mit den folgenden Flags:

gcloud batch tasks list \
    --job=JOB_NAME \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • JOB_NAME: der Name eines vorhandenen Jobs.

  • LOCATION: den Speicherort, an dem sich die Aufgabe befindet.

Optional können Sie das --filter-Flag hinzufügen, um eine gefilterte Liste von Aufgaben in der Aufgabengruppe eines Jobs basierend auf einem Filterausdruck aufzurufen.

Verwenden Sie zum Beispiel den folgenden Befehl:

gcloud batch tasks list \
    --job=example-job \
    --location=us-central1 \
    --filter="FILTER_EXPRESSION"

Ersetzen Sie FILTER_EXPRESSION durch einen Filterausdruck.

Mit dem folgenden Filterausdruck können Sie beispielsweise nur die Aufgaben in der Aufgabengruppe eines Jobs sehen, die gerade ausgeführt werden oder deren Ausführung erfolgreich abgeschlossen wurde:

STATE=RUNNING OR STATE=SUCCEEDED

API

Wenn Sie mit der Batch API eine Liste der Aufgaben in der Aufgabengruppe eines Jobs aufrufen möchten, senden Sie eine GET-Anfrage an die Methode tasks.list:

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP_NAME/tasks

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID des aktuellen Projekts.

  • LOCATION: den Speicherort, an dem sich der Job befindet.

  • JOB_NAME: der Name eines vorhandenen Jobs.

  • TASK_GROUP_NAME: der Name der Aufgabengruppe, deren Details Sie aufrufen möchten. Der Wert muss auf group0 festgelegt sein.

Optional können Sie den Abfrageparameter filter angeben, um eine gefilterte Liste der Aufgaben in der Aufgabengruppe eines Jobs basierend auf einem Filterausdruck aufzurufen.

Stellen Sie beispielsweise die folgende GET-Anfrage:

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

Ersetzen Sie FILTER_EXPRESSION durch einen Filterausdruck, der die URL-Codierung verwendet.

Mit dem folgenden Filterausdruck können Sie beispielsweise nur die Aufgaben in der Aufgabengruppe eines Jobs sehen, die gerade ausgeführt werden oder deren Ausführung erfolgreich abgeschlossen wurde:

STATE=RUNNING%20OR%20STATE=SUCCEEDED

Beachten Sie, dass der URL-codierte Filterausdruck für folgenden decodierten Filterausdruck steht:

STATE=RUNNING OR STATE=SUCCEEDED

Go

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Go API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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 tasks in the given project and region
func listTasks(w io.Writer, projectID, region, jobName, taskGroup string) error {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"
	// taskGroup := "group0" // defaults to "group0" on job creation unless overridden

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

	req := &batchpb.ListTasksRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s/jobs/%s/taskGroups/%s", projectID, region, jobName, taskGroup),
	}

	var tasks []*batchpb.Task
	it := batchClient.ListTasks(ctx, req)

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

	fmt.Fprintf(w, "Tasks: %v\n", tasks)

	return nil
}

Java

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

public class ListTasks {

  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 hosts the job.
    String region = "europe-central2";
    // Name of the job which tasks you want to list.
    String jobName = "JOB_NAME";
    // Name of the group of tasks. Usually it's `group0`.
    String groupName = "group0";

    listTasks(projectId, region, jobName, groupName);
  }

  // Get a list of all jobs defined in given region.
  public static void listTasks(String projectId, String region, String jobName, String groupName)
      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()) {

      String parent = String.format("projects/%s/locations/%s/jobs/%s/taskGroups/%s", projectId,
          region, jobName, groupName);
      for (Task task : batchServiceClient.listTasks(parent).iterateAll()) {
        System.out.println(task.getName());
      }
    }
  }
}

Node.js

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Node.js API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job which tasks you want to list.
 */
// const jobName = 'YOUR_JOB_NAME';
/**
 * The name of the group of tasks. Usually it's `group0`.
 */
// const groupName = 'group0';

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callListTasks() {
  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${region}/jobs/${jobName}/taskGroups/${groupName}`,
  };

  // Run request
  const iterable = await batchClient.listTasksAsync(request);
  for await (const response of iterable) {
    console.log(response);
  }
}

await callListTasks();

Python

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Python API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from __future__ import annotations

from collections.abc import Iterable

from google.cloud import batch_v1


def list_tasks(
    project_id: str, region: str, job_name: str, group_name: str
) -> Iterable[batch_v1.Task]:
    """
    Get a list of all jobs defined in given region.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosting the jobs.
        job_name: name of the job which tasks you want to list.
        group_name: name of the group of tasks. Usually it's `group0`.

    Returns:
        An iterable collection of Task objects.
    """
    client = batch_v1.BatchServiceClient()

    return client.list_tasks(
        parent=f"projects/{project_id}/locations/{region}/jobs/{job_name}/taskGroups/{group_name}"
    )

C++

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id, std::string const& group_id) {
    auto const parent = "projects/" + project_id + "/locations/" + location_id +
                        "/jobs/" + job_id + "/taskGroups/" + group_id;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    int i = 0;
    for (auto task : client.ListTasks(parent)) {
      if (!task) throw std::move(task).status();
      std::cout << "Task[" << i++ << "]  " << task->DebugString() << "\n";
    }
  }

Details zu einer Aufgabe aufrufen

Sie können die Details einer Aufgabe mit derGoogle Cloud -Console, der gcloud CLI, der Batch API, Go, Java, Node.js, Python oder C++ aufrufen.

Console

Wenn Sie die Details einer Aufgabe in derGoogle Cloud -Console aufrufen möchten, rufen Sie die Details eines Jobs auf, um die Seite Jobdetails zu öffnen. Weitere Informationen finden Sie im Abschnitt Aufgabendetails.

gcloud

Wenn Sie die Details einer Aufgabe mit der gcloud CLI aufrufen möchten, verwenden Sie den Befehl gcloud batch tasks describe mit den folgenden Flags:

gcloud batch tasks describe TASK_INDEX \
  --location=LOCATION \
  --job=JOB_NAME \
  --task_group=TASK_GROUP_NAME

Ersetzen Sie Folgendes:

  • TASK_INDEX: Der Index der Aufgabe, deren Details Sie aufrufen möchten. In einer Aufgabengruppe beginnt der Aufgabenindex bei 0 für die erste Aufgabe und erhöht sich mit jeder zusätzlichen Aufgabe um 1. Eine Aufgabengruppe mit vier Aufgaben hat beispielsweise die Indexe 0, 1, 2 und 3.

  • TASK_GROUP_NAME: der Name der Aufgabengruppe, die die Aufgabe enthält, deren Details Sie aufrufen möchten. Der Wert muss auf group0 festgelegt sein.

  • JOB_NAME: der Name eines vorhandenen Jobs.

  • LOCATION: den Speicherort, an dem sich die Aufgabe befindet.

API

Wenn Sie die Details einer Aufgabe mit der Batch API aufrufen möchten, senden Sie eine GET-Anfrage an die Methode tasks.get:

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP_NAME/tasks/TASK_INDEX

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID des aktuellen Projekts.

  • LOCATION: den Speicherort, an dem sich der Job befindet.

  • JOB_NAME: der Name eines vorhandenen Jobs.

  • TASK_GROUP_NAME: der Name der Aufgabengruppe, die die Aufgabe enthält, deren Details Sie aufrufen möchten. Der Wert muss auf group0 festgelegt sein.

  • TASK_INDEX: den Index der Aufgabe, deren Details Sie aufrufen möchten. In einer Aufgabengruppe beginnt der Aufgabenindex bei 0 für die erste Aufgabe und wird mit jeder zusätzlichen Aufgabe um 1 erhöht. Eine Aufgabengruppe mit vier Aufgaben hat beispielsweise die Indexe 0, 1, 2 und 3.

Go

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Go API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
)

// Retrieves the information about the specified job, most importantly its status
func getTask(w io.Writer, projectID, region, jobName, taskGroup string, taskNumber int32) error {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"
	// taskGroup := "group0" // defaults to "group0" on job creation unless overridden
	// taskNumber := 0

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

	req := &batchpb.GetTaskRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/jobs/%s/taskGroups/%s/tasks/%d",
			projectID, region, jobName, taskGroup, taskNumber),
	}

	response, err := batchClient.GetTask(ctx, req)
	if err != nil {
		return fmt.Errorf("unable to get task: %w", err)
	}

	fmt.Fprintf(w, "Task info: %v\n", response)

	return nil
}

Java

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

public class GetTask {

  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 hosts the job.
    String region = "europe-central2";
    // The name of the job you want to retrieve information about.
    String jobName = "JOB_NAME";
    // The name of the group that owns the task you want to check. Usually it's `group0`.
    String groupName = "group0";
    // Number of the task you want to look up.
    int taskNumber = 0;

    getTask(projectId, region, jobName, groupName, taskNumber);
  }

  // Retrieve information about a Task.
  public static void getTask(String projectId, String region, String jobName, String groupName,
      int taskNumber) 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()) {

      Task task = batchServiceClient.getTask(TaskName.newBuilder()
          .setProject(projectId)
          .setLocation(region)
          .setJob(jobName)
          .setTaskGroup(groupName)
          .setTask(String.valueOf(taskNumber))
          .build());
      System.out.printf("Retrieved task information: %s", task.getName());
    }
  }
}

Node.js

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Node.js API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job you want to retrieve information about.
 */
// const jobName = 'YOUR_JOB_NAME';
/**
 * The name of the group that owns the task you want to check.
 * Usually it's `group0`.
 */
// const groupName = 'group0';
/**
 * The number of the task you want to look up.
 */
// const taskNumber = 0;

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callGetJob() {
  // Construct request
  const request = {
    name:
      `projects/${projectId}/locations/${region}/jobs/${jobName}` +
      `/taskGroups/${groupName}/tasks/${taskNumber}`,
  };

  // Run request
  const response = await batchClient.getTask(request);
  console.log(response);
}

await callGetJob();

Python

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Python API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


from google.cloud import batch_v1


def get_task(
    project_id: str, region: str, job_name: str, group_name: str, task_number: int
) -> batch_v1.Task:
    """
    Retrieve information about a Task.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosts the job.
        job_name: the name of the job you want to retrieve information about.
        group_name: the name of the group that owns the task you want to check. Usually it's `group0`.
        task_number: number of the task you want to look up.

    Returns:
        A Task object representing the specified task.
    """
    client = batch_v1.BatchServiceClient()

    return client.get_task(
        name=f"projects/{project_id}/locations/{region}/jobs/{job_name}"
        f"/taskGroups/{group_name}/tasks/{task_number}"
    )

C++

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Batch C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id, std::string const& group_id,
     std::string const& task_number) {
    auto const name = "projects/" + project_id + "/locations/" + location_id +
                      "/jobs/" + job_id + "/taskGroups/" + group_id +
                      "/tasks/" + task_number;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    auto response = client.GetTask(name);
    if (!response) throw std::move(response).status();
    std::cout << "GetTask() succeeded with " << response->DebugString() << "\n";
  }

Nächste Schritte