הצגת משרות ומשימות

במאמר הזה מוסבר איך לצפות במשימות ובמשרות של Batch.

לפני שמתחילים

  1. אם עוד לא השתמשתם ב-Batch, כדאי לעיין במאמר תחילת העבודה עם Batch ולהפעיל את Batch על ידי השלמת הדרישות המוקדמות לפרויקטים ולמשתמשים.
  2. כדי לקבל את ההרשאות שנדרשות להצגת משימות ועבודות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'צפייה בעבודות ב-Batch' (roles/batch.jobsViewer) או 'עריכת עבודות ב-Batch' (roles/batch.jobsEditor) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

    יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הצגת המשרות

כדי לראות את המשרות, בוחרים באחת מהשיטות הבאות:

הצגת רשימה של המשרות

אפשר לראות רשימה של עבודות בפרויקט הנוכחי באמצעותGoogle Cloud המסוף, gcloud CLI,‏ Batch API,‏ Go,‏ Java,‏ Node.js,‏ Python או C++.

המסוף

  1. כדי לראות רשימה של משימות בפרויקט הנוכחי באמצעות מסוףGoogle Cloud , עוברים לדף Job list.

    מעבר לרשימת המשימות

    רשימת המשרות יכולה להתפרס על כמה דפים. אם צריך להמשיך לדף הבא, לוחצים על הבא בתחתית המסך.

  2. אופציונלי: אם רוצים לסנן את רשימת המשרות, לוחצים על סינון. לאחר מכן, מקלידים או בוחרים נכס וערך.

    לדוגמה, כדי לסנן את הרשימה כך שיכללו בה רק משימות במצב מסוים, מזינים את הפקודה הבאה:

    Status:JOB_STATE
    

    מחליפים את JOB_STATE במצב המשימה, לדוגמה FAILED.

gcloud

הצגת כל המשרות

כדי לראות רשימה של משימות בפרויקט הנוכחי באמצעות CLI של gcloud, משתמשים בפקודה gcloud batch jobs list.

gcloud batch jobs list

הצגת רשימה מסוננת של משרות

אפשר גם להוסיף סימון אחד או יותר כדי לראות רשימה מסוננת של משרות:

  • כדי לראות רק משרות במיקום ספציפי, צריך לכלול את הדגל --location.

  • כדי להציג רק משרות שתואמות לביטוי סינון, מציינים את הדגל --filter.

לדוגמה, משתמשים בפקודה הבאה:

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

מחליפים את מה שכתוב בשדות הבאים:

  • LOCATION: המיקום שבו יש משרה אחת או יותר.

  • FILTER_EXPRESSION: ביטוי סינון שמגדיר את המשימות שרוצים להציג. ביטוי הסינון צריך להגדיר זוג אחד או יותר של מאפיין-ערך, שמופרדים על ידי אפס או יותר אופרטורים בוליאניים (AND,‏ OR ו-NOT).

    לדוגמה, הביטויים הבאים של מסננים:

    • סינון לפי מצב המשימה: כדי לראות רק משימות שנמצאות במצב מסוים, משתמשים בביטוי הסינון הבא:

      status.state="JOB_STATE"
      

      מחליפים את JOB_STATE במצב המשימה, לדוגמה FAILED.

    • סינון לפי תוויות: נניח שהגדרתם בפרויקט את התוויות המותאמות אישית הבאות:

      • כדי לציין משימות ומשאבים שנוצרו על ידי צוות המחקר כשמציגים דוחות חיוב ב-Cloud, לחלק מהמשימות והמשאבים יש תווית team שמוגדרת לערך research.

      • כדי לציין עומסי עבודה שרגישים לזמן, לחלק מהמשימות יש תווית deadline עם ערכים שונים.

      • כדי לציין קבצים להרצה שצוות הפיתוח בדק בהצלחה, לחלק מהקבצים להרצה יש תווית tested שהערך שלה הוא true.

      אחר כך אפשר לציין את ביטוי הסינון הבא:

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

      ביטוי המסנן הזה מציג רק משימות שעומדות בכל הקריטריונים הבאים:

      • משרות מצוות המחקר, שיש להן תווית team במדיניות ההקצאה של המשרה שמוגדרת לערך research.

      • משימות שעומדות לפחות באחד מהקריטריונים הבאים:

        • משרות שמוגבלות בזמן, שיש להן תווית deadline במשרה שמוגדרת לכל ערך.

        • משימות שיש להן לפחות רכיב הפעלה אחד שנבדק בהצלחה, כלומר משימות שיש להן לפחות רכיב הפעלה אחד עם תווית tested שהוגדרה לערך true.

API

הצגת כל המשרות

כדי לראות רשימה של משימות בפרויקט הנוכחי במיקום ספציפי באמצעות Batch API, שולחים בקשת GET לשיטה jobs.list.

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

מחליפים את מה שכתוב בשדות הבאים:

הצגת רשימה מסוננת של משרות

אפשר גם לציין את פרמטר השאילתה filter כדי לראות רשימה מסוננת של משרות על סמך ביטוי סינון.

לדוגמה, שולחים את בקשת GET הבאה:

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

מחליפים את FILTER_EXPRESSION בביטוי מסנן שמשתמש בקידוד URL. ביטוי הסינון צריך להגדיר זוגות של מאפיין-ערך שמופרדים על ידי אפס או יותר אופרטורים בוליאניים (AND, ‏ OR ו-NOT).

לדוגמה, ביטויי הסינון הבאים:

  • סינון לפי מצב המשימה: כדי לראות רק משימות שנמצאות במצב מסוים, משתמשים בביטוי הסינון הבא:

    status.state="JOB_STATE"
    

    מחליפים את JOB_STATE במצב המשימה, לדוגמה FAILED.

  • סינון לפי תוויות: נניח שהגדרתם בפרויקט את התוויות המותאמות אישית הבאות:

    • כדי לציין משימות ומשאבים שנוצרו על ידי צוות המחקר כשמציגים דוחות חיוב ב-Cloud, לחלק מהמשימות והמשאבים יש תווית team שמוגדרת לערך research.

    • כדי לציין עומסי עבודה שרגישים לזמן, לחלק מהמשימות יש תווית deadline עם ערכים שונים.

    • כדי לציין קבצים להרצה שצוות הפיתוח בדק בהצלחה, לחלק מהקבצים להרצה יש תווית tested שהערך שלה הוא true.

    אחר כך אפשר לציין את ביטוי הסינון הבא:

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

    ביטוי המסנן הזה מציג רק משימות שעומדות בכל הקריטריונים הבאים:

    • משרות מצוות המחקר, שיש להן תווית team במדיניות ההקצאה של המשרה שמוגדרת לערך research.

    • משימות שעומדות לפחות באחד מהקריטריונים הבאים:

      • משרות שמוגבלות בזמן, שיש להן תווית deadline במשרה שמוגדרת לכל ערך.

      • משימות שיש להן לפחות קובץ הפעלה אחד שנבדק בהצלחה, כלומר משימות שיש להן לפחות קובץ הפעלה אחד עם תווית tested שהוגדרה לערך true.

המשך

Go

מידע נוסף מופיע במאמרי העזרה של Batch Go API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Node.js API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * 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

מידע נוסף מופיע במאמרי העזרה של Batch Python API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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++

מידע נוסף מופיע במאמרי העזרה של Batch C++ API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

#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";
    }
  }

צפייה בפרטי משרה

אפשר לראות את הפרטים של עבודה בפרויקט הנוכחי באמצעותGoogle Cloud המסוף, ה-CLI של gcloud,‏ Batch API,‏ Go,‏ Java,‏ Node.js,‏ Python או C++.

המסוף

כדי לראות את פרטי העבודה בפרויקט הנוכחי באמצעות מסוףGoogle Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף Job list במסוף Google Cloud .

    מעבר לרשימת המשימות

  2. בעמודה Job name (שם המשימה), לוחצים על שם המשימה.

    ייפתח הדף פרטי המשרה.

    הכרטיסייה פרטים פתוחה כברירת מחדל. כדי לקבל מידע נוסף, לוחצים על כרטיסיות אחרות.

gcloud

כדי לראות את פרטי העבודה בפרויקט הנוכחי באמצעות CLI של gcloud, משתמשים בפקודה gcloud batch jobs describe עם הדגל --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • JOB_NAME: השם של משימה קיימת.

  • LOCATION: המיקום שבו המשימה קיימת.

API

כדי לראות את הפרטים של משימה בפרויקט הנוכחי באמצעות Batch API, שולחים בקשת GET ל-method jobs.get.

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של הפרויקט הנוכחי.

  • LOCATION: המיקום שבו המשימה קיימת.

  • JOB_NAME: השם של משימה קיימת.

המשך

Go

מידע נוסף מופיע במאמרי העזרה של Batch Go API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Java API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Node.js API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * 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

מידע נוסף מופיע במאמרי העזרה של Batch Python API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


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++

מידע נוסף מופיע במאמרי העזרה של Batch C++ API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

#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";
  }

פתיחת המשימות

כדי לראות את המשימות של אחת מהמשרות, בוחרים אחת מהשיטות הבאות:

איך רואים את רשימת המשימות של משרה

אפשר לראות רשימה של המשימות בעבודה או בקבוצת משימות של עבודה באמצעותGoogle Cloud המסוף, ה-CLI של gcloud,‏ Batch API,‏ Go,‏ Java,‏ Node.js,‏ Python או C++.

אם רוצים לסנן רשימה של משימות בעבודה או בקבוצת משימות של עבודה – למשל, כדי להציג רק את המשימות שהסתיימו בהצלחה – צריך להשתמש ב-CLI של gcloud או ב-Batch API.

המסוף

כדי לראות סיכום של המשימות של עבודה באמצעותGoogle Cloud המסוף, צופים בפרטים של עבודה כדי לפתוח את הדף פרטי העבודה. אחר כך, מעיינים בקטע פרטי המשימה.

gcloud

כדי לראות רשימה של המשימות בקבוצת המשימות של עבודה באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud batch tasks list עם הדגלים הבאים:

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

מחליפים את מה שכתוב בשדות הבאים:

  • JOB_NAME: השם של משימה קיימת.

  • LOCATION: המיקום שבו המשימה קיימת.

אפשר גם להוסיף את הדגל --filter כדי לראות רשימה מסוננת של משימות בקבוצת משימות של משרה, על סמך ביטוי סינון.

לדוגמה, משתמשים בפקודה הבאה:

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

מחליפים את FILTER_EXPRESSION בביטוי סינון.

לדוגמה, אפשר לציין את ביטוי המסנן הבא כדי לראות רק את המשימות בקבוצת המשימות של עבודה שפועלות או שהסתיימו בהצלחה:

STATE=RUNNING OR STATE=SUCCEEDED

API

כדי לראות רשימה של משימות בקבוצת משימות של עבודה באמצעות Batch API, שולחים בקשת GET ל-method tasks.list:

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של הפרויקט הנוכחי.

  • LOCATION: המיקום שבו המשימה קיימת.

  • JOB_NAME: השם של משימה קיימת.

  • TASK_GROUP_NAME: השם של קבוצת המשימות שרוצים לראות את הפרטים שלה. הערך צריך להיות group0.

אפשר גם לציין את פרמטר השאילתה filter כדי להציג רשימה מסוננת של משימות בקבוצת משימות של משימה, על סמך ביטוי מסנן.

לדוגמה, שולחים את בקשת GET הבאה:

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

מחליפים את FILTER_EXPRESSION בביטוי מסנן שמשתמש בקידוד URL.

לדוגמה, אפשר לציין את ביטוי המסנן הבא כדי לראות רק את המשימות בקבוצת המשימות של עבודה שפועלות או שהסתיימו בהצלחה:

STATE=RUNNING%20OR%20STATE=SUCCEEDED

שימו לב שביטוי המסנן המקודד בכתובת ה-URL מייצג את ביטוי המסנן המפוענח הבא:

STATE=RUNNING OR STATE=SUCCEEDED

המשך

Go

מידע נוסף מופיע במאמרי העזרה של Batch Go API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Java API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Node.js API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * 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

מידע נוסף מופיע במאמרי העזרה של Batch Python API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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++

מידע נוסף מופיע במאמרי העזרה של Batch C++ API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

#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";
    }
  }

הצגת פרטי המשימה

אפשר לראות את פרטי המשימה באמצעותGoogle Cloud המסוף, ה-CLI של gcloud,‏ Batch API,‏ Go,‏ Java,‏ Node.js,‏ Python או C++.

המסוף

כדי לראות את פרטי המשימה באמצעותGoogle Cloud המסוף, צופים בפרטי המשרה כדי לפתוח את הדף פרטי המשרה. אחר כך, מעיינים בקטע פרטי המשימה.

gcloud

כדי להציג את פרטי המשימה באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud batch tasks describe עם הדגלים הבאים:

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

מחליפים את מה שכתוב בשדות הבאים:

  • TASK_INDEX: האינדקס של המשימה שרוצים לראות את הפרטים שלה. בקבוצת משימות, אינדקס המשימות מתחיל ב-0 עבור המשימה הראשונה וגדל ב-1 עם כל משימה נוספת. לדוגמה, לקבוצת משימות שמכילה ארבע משימות יש את האינדקסים 0, 1, 2 ו-3.

  • TASK_GROUP_NAME: השם של קבוצת המשימות שמכילה את המשימה שרוצים לראות את הפרטים שלה. הערך חייב להיות group0.

  • JOB_NAME: השם של משימה קיימת.

  • LOCATION: המיקום שבו המשימה קיימת.

API

כדי להציג את הפרטים של משימה באמצעות Batch API, שולחים בקשת GET לשיטה tasks.get:

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של הפרויקט הנוכחי.

  • LOCATION: המיקום שבו המשימה קיימת.

  • JOB_NAME: השם של משימה קיימת.

  • TASK_GROUP_NAME: השם של קבוצת המשימות שמכילה את המשימה שרוצים לראות את הפרטים שלה. הערך חייב להיות group0.

  • TASK_INDEX: האינדקס של המשימה שרוצים לראות את הפרטים שלה. במשימות קבוצתיות, אינדקס המשימה מתחיל ב-0 עבור המשימה הראשונה וגדל ב-1 עם כל משימה נוספת. לדוגמה, לקבוצת משימות שמכילה ארבע משימות יש את האינדקסים 0, 1, 2 ו-3.

המשך

Go

מידע נוסף מופיע במאמרי העזרה של Batch Go API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Java API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

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

מידע נוסף מופיע במאמרי העזרה של Batch Node.js API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * 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

מידע נוסף מופיע במאמרי העזרה של Batch Python API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


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++

מידע נוסף מופיע במאמרי העזרה של Batch C++ API.

כדי לבצע אימות ב-Batch, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

#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";
  }

המאמרים הבאים