Melihat tugas

Dokumen ini menjelaskan cara melihat tugas dan tugas Batch.

Sebelum memulai

  1. Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
  2. Untuk mendapatkan izin yang diperlukan guna melihat tugas dan tugas, minta administrator untuk memberi Anda peran IAM Batch Job Viewer (roles/batch.jobsViewer) atau Batch Job Editor (roles/batch.jobsEditor) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Melihat lowongan Anda

Untuk melihat tugas, pilih salah satu metode berikut:

Melihat daftar lowongan Anda

Anda dapat melihat daftar tugas dalam project saat ini menggunakan konsol Google Cloud, gcloud CLI, Batch API, Go, Java, Node.js, Python, atau C++.

Konsol

  1. Untuk melihat daftar tugas dalam project saat ini menggunakan konsol Google Cloud, buka halaman Daftar tugas.

    Buka Daftar tugas

    Daftar tugas mungkin terdiri dari beberapa halaman. Jika Anda perlu melanjutkan ke halaman berikutnya, klik Berikutnya di bagian bawah layar.

  2. Opsional: Jika Anda ingin memfilter daftar tugas, klik Filter. Kemudian, ketik atau pilih properti dan nilai.

    Misalnya, untuk memfilter daftar agar hanya menyertakan tugas dalam status tertentu, masukkan kode berikut:

    Status:JOB_STATE
    

    Ganti JOB_STATE dengan status tugas—misalnya, FAILED.

gcloud

Lihat semua tugas

Untuk melihat daftar tugas dalam project saat ini menggunakan gcloud CLI, gunakan perintah gcloud batch jobs list.

gcloud batch jobs list

Melihat daftar tugas yang difilter

Secara opsional, Anda dapat menambahkan satu atau beberapa tanda untuk melihat daftar tugas yang difilter:

  • Untuk hanya melihat lowongan di lokasi tertentu, sertakan flag --location.

  • Untuk hanya melihat tugas berdasarkan ekspresi filter, tentukan flag --filter.

Misalnya, gunakan perintah berikut:

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

Ganti kode berikut:

  • LOCATION: lokasi tempat satu atau beberapa tugas berada.

  • FILTER_EXPRESSION: Ekspresi filter yang menentukan tugas yang ingin Anda cantumkan. Ekspresi filter harus menentukan satu atau beberapa pasangan nilai properti yang dipisahkan oleh nol atau beberapa operator boolean (AND, OR, dan NOT).

    Misalnya, lihat ekspresi filter berikut:

    • Filter berdasarkan status tugas: Untuk hanya melihat tugas yang berada dalam status tertentu, gunakan ekspresi filter berikut:

      status.state="JOB_STATE"
      

      Ganti JOB_STATE dengan status tugas—misalnya, FAILED.

    • Memfilter berdasarkan label: Misalnya, project Anda telah menentukan label kustom berikut:

      • Untuk menunjukkan tugas dan resource-nya yang dibuat oleh tim riset Anda saat Anda melihat laporan Penagihan Cloud, beberapa tugas dan resource-nya memiliki label team yang ditetapkan ke research.

      • Untuk menunjukkan beban kerja yang sensitif terhadap waktu, beberapa tugas memiliki label deadline, yang ditetapkan ke berbagai nilai.

      • Untuk menunjukkan runnable yang telah berhasil diuji oleh tim pengembangan Anda, beberapa runnable memiliki label tested yang disetel ke true.

      Kemudian, Anda dapat menentukan ekspresi filter berikut:

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

      Ekspresi filter ini hanya mencantumkan tugas yang memenuhi semua kriteria berikut:

      • Tugas yang berasal dari tim riset, yang memiliki label team pada kebijakan alokasi tugas yang ditetapkan ke research.

      • Pekerjaan yang memenuhi setidaknya salah satu kriteria berikut:

        • Tugas yang sensitif terhadap waktu, yang memiliki label deadline pada tugas yang ditetapkan ke nilai apa pun.

        • Tugas yang memiliki setidaknya satu tugas yang dapat dijalankan yang telah berhasil diuji, yaitu tugas yang memiliki setidaknya satu tugas yang dapat dijalankan dengan label tested yang disetel ke true.

API

Lihat semua tugas

Untuk melihat daftar tugas dalam project saat ini untuk lokasi tertentu menggunakan Batch API, buat permintaan GET ke metode jobs.list.

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

Ganti kode berikut:

  • PROJECT_ID: Project ID project Anda saat ini.

  • LOCATION: lokasi tempat tugas berada.

Melihat daftar tugas yang difilter

Secara opsional, Anda dapat menentukan parameter kueri filter untuk melihat daftar lowongan yang difilter berdasarkan ekspresi filter.

Misalnya, buat permintaan GET berikut:

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

Ganti FILTER_EXPRESSION dengan ekspresi filter yang menggunakan encoding URL. Ekspresi filter harus menentukan satu atau beberapa pasangan nilai properti yang dipisahkan oleh nol atau beberapa operator boolean (AND, OR, dan NOT).

Misalnya, lihat ekspresi filter berikut:

  • Filter berdasarkan status tugas: Untuk hanya melihat tugas yang berada dalam status tertentu, gunakan ekspresi filter berikut:

    status.state="JOB_STATE"
    

    Ganti JOB_STATE dengan status tugas—misalnya, FAILED.

  • Memfilter berdasarkan label: Misalnya, project Anda telah menentukan label kustom berikut:

    • Untuk menunjukkan tugas dan resource-nya yang dibuat oleh tim riset Anda saat Anda melihat laporan Penagihan Cloud, beberapa tugas dan resource-nya memiliki label team yang ditetapkan ke research.

    • Untuk menunjukkan beban kerja yang sensitif terhadap waktu, beberapa tugas memiliki label deadline, yang ditetapkan ke berbagai nilai.

    • Untuk menunjukkan runnable yang telah berhasil diuji oleh tim pengembangan Anda, beberapa runnable memiliki label tested yang disetel ke true.

    Kemudian, Anda dapat menentukan ekspresi filter berikut:

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

    Ekspresi filter ini hanya mencantumkan tugas yang memenuhi semua kriteria berikut:

    • Tugas yang berasal dari tim riset, yang memiliki label team pada kebijakan alokasi tugas yang ditetapkan ke research.

    • Pekerjaan yang memenuhi setidaknya salah satu kriteria berikut:

      • Tugas yang sensitif terhadap waktu, yang memiliki label deadline pada tugas yang ditetapkan ke nilai apa pun.

      • Tugas yang memiliki setidaknya satu tugas yang dapat dijalankan yang telah berhasil diuji, yaitu tugas yang memiliki setidaknya satu tugas yang dapat dijalankan dengan label tested yang disetel ke true.

Go

Go

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Go API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Java API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Node.js API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Python API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch C++ API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Melihat detail tugas

Anda dapat melihat detail tugas dalam project saat ini menggunakan Konsol Google Cloud, gcloud CLI, Batch API, Go, Java, Node.js, Python, atau C++.

Konsol

Untuk melihat detail tugas dalam project saat ini menggunakan konsol Google Cloud, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Daftar tugas.

    Buka Daftar tugas

  2. Di kolom Nama tugas, klik nama tugas.

    Halaman Detail tugas akan terbuka.

    Tab Details terbuka secara default. Untuk informasi selengkapnya, klik tab lainnya.

gcloud

Untuk melihat detail tugas dalam project saat ini menggunakan gcloud CLI, gunakan perintah gcloud batch jobs describe dengan flag --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

Ganti kode berikut:

  • JOB_NAME: nama tugas yang ada.

  • LOCATION: lokasi tempat tugas berada.

API

Untuk melihat detail tugas dalam project saat ini menggunakan Batch API, buat permintaan GET ke metode jobs.get.

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

Ganti kode berikut:

  • PROJECT_ID: project ID dari project saat ini.

  • LOCATION: lokasi tempat tugas berada.

  • JOB_NAME: nama tugas yang ada.

Go

Go

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Go API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Java API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Node.js API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Python API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch C++ API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Lihat tugas

Untuk melihat tugas untuk salah satu tugas Anda, pilih salah satu metode berikut:

Melihat daftar tugas tugas

Anda dapat melihat daftar tugas dalam tugas atau grup tugas tugas menggunakan konsol Google Cloud, gcloud CLI, Batch API, Go, Java, Node.js, Python, atau C++.

Jika ingin memfilter daftar tugas dalam tugas atau grup tugas tugas—misalnya, hanya untuk mencantumkan tugas yang telah berhasil selesai berjalan—Anda harus menggunakan gcloud CLI atau Batch API.

Konsol

Untuk melihat ringkasan tugas tugas menggunakan konsol Google Cloud, lihat detail tugas untuk membuka halaman Detail tugas. Kemudian, lihat bagian Detail tugas.

gcloud

Untuk melihat daftar tugas dalam grup tugas tugas menggunakan gcloud CLI, gunakan perintah gcloud batch tasks list dengan flag berikut:

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

Ganti kode berikut:

  • JOB_NAME: nama tugas yang ada.

  • LOCATION: lokasi tempat tugas berada.

Secara opsional, Anda dapat menambahkan flag --filter untuk melihat daftar tugas yang difilter dalam grup tugas tugas berdasarkan ekspresi filter.

Misalnya, gunakan perintah berikut:

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

Ganti FILTER_EXPRESSION dengan ekspresi filter.

Misalnya, Anda dapat menentukan ekspresi filter berikut untuk hanya melihat tugas dalam grup tugas tugas yang sedang berjalan atau telah berhasil selesai berjalan:

STATE=RUNNING OR STATE=SUCCEEDED

API

Untuk melihat daftar tugas dalam grup tugas tugas menggunakan Batch API, buat permintaan GET ke metode tasks.list:

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

Ganti kode berikut:

  • PROJECT_ID: project ID dari project saat ini.

  • LOCATION: lokasi tempat tugas berada.

  • JOB_NAME: nama tugas yang ada.

  • TASK_GROUP_NAME: nama grup tugas yang ingin Anda lihat detailnya. Nilai harus ditetapkan ke group0.

Secara opsional, Anda dapat menentukan parameter kueri filter untuk melihat daftar tugas yang difilter dalam grup tugas tugas berdasarkan ekspresi filter.

Misalnya, buat permintaan GET berikut:

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

Ganti FILTER_EXPRESSION dengan ekspresi filter yang menggunakan encoding URL.

Misalnya, Anda dapat menentukan ekspresi filter berikut untuk hanya melihat tugas dalam grup tugas tugas yang sedang berjalan atau telah berhasil selesai berjalan:

STATE=RUNNING%20OR%20STATE=SUCCEEDED

Perhatikan bahwa ekspresi filter yang dienkode ke URL mewakili ekspresi filter yang didekode berikut:

STATE=RUNNING OR STATE=SUCCEEDED

Go

Go

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Go API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Java API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Node.js API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Python API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch C++ API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Melihat detail tugas

Anda dapat melihat detail tugas menggunakan konsol Google Cloud, gcloud CLI, Batch API, Go, Java, Node.js, Python, atau C++.

Konsol

Untuk melihat detail tugas menggunakan konsol Google Cloud, lihat detail tugas untuk membuka halaman Detail tugas. Kemudian, lihat bagian Detail tugas.

gcloud

Untuk melihat detail tugas menggunakan gcloud CLI, gunakan perintah gcloud batch tasks describe dengan flag berikut:

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

Ganti kode berikut:

  • TASK_INDEX: indeks tugas yang detailnya ingin Anda lihat. Dalam grup tugas, indeks tugas dimulai dari 0 untuk tugas pertama dan bertambah 1 dengan setiap tugas tambahan. Misalnya, grup tugas yang berisi empat tugas memiliki indeks 0, 1, 2, dan 3.

  • TASK_GROUP_NAME: nama grup tugas yang berisi tugas yang ingin Anda lihat detailnya. Nilai harus ditetapkan ke group0.

  • JOB_NAME: nama tugas yang ada.

  • LOCATION: lokasi tempat tugas berada.

API

Untuk melihat detail tugas menggunakan Batch API, buat permintaan GET ke metode tasks.get:

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

Ganti kode berikut:

  • PROJECT_ID: project ID dari project saat ini.

  • LOCATION: lokasi tempat tugas berada.

  • JOB_NAME: nama tugas yang ada.

  • TASK_GROUP_NAME: nama grup tugas yang berisi tugas yang ingin Anda lihat detailnya. Nilai harus ditetapkan ke group0.

  • TASK_INDEX: indeks tugas yang ingin Anda lihat detailnya. Dalam grup tugas, indeks tugas dimulai dari 0 untuk tugas pertama dan bertambah 1 dengan setiap tugas tambahan. Misalnya, grup tugas yang berisi empat tugas memiliki indeks 0, 1, 2, dan 3.

Go

Go

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Go API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Java API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Node.js API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Python API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch C++ API.

Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Langkah selanjutnya