작업 및 태스크 보기

이 페이지에서는 Batch 작업 및 해당 태스크를 보는 방법을 설명합니다.

시작하기 전에

  • Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
  • 작업 및 태스크를 보는 데 필요한 권한을 얻으려면 프로젝트에 대한 일괄 작업 뷰어(roles/batch.jobsViewer) 또는 일괄 작업 편집자(roles/batch.jobsEditor) IAM 역할을 부여해 달라고 관리자에게 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

작업 표시 및 설명

프로젝트에 있는 작업을 보려면 작업을 표시합니다. 구성 세부정보를 보려면 작업을 설명합니다.

작업 표시

Google Cloud 콘솔, gcloud CLI, Batch API, Go, 자바, Node.js, Python을 사용하여 작업을 표시할 수 있습니다.

콘솔

프로젝트의 작업을 표시하려면 Google Cloud 콘솔에서 작업 목록 페이지로 이동합니다.

작업 목록으로 이동

gcloud

gcloud CLI를 사용하여 프로젝트의 작업을 표시하려면 gcloud batch jobs list 명령어를 사용합니다.

gcloud batch jobs list

API

Batch API를 사용하여 특정 위치에 대한 프로젝트의 작업을 표시하려면 jobs.list 메서드를 사용합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 작업의 위치입니다.
  • JOB_NAME: 작업의 이름입니다.

Go

Go

자세한 내용은 Batch Go API 참조 문서를 확인하세요.

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: %v", 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: %v", err)
		}
		jobs = append(jobs, job)
	}

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

	return nil
}

자바

Java

자세한 내용은 Batch Java API 참조 문서를 확인하세요.


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 참조 문서를 확인하세요.

/**
 * 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);
  }
}

callListJobs();

Python

Python

자세한 내용은 Batch Python API 참조 문서를 확인하세요.

from typing 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}")

작업 설명

Google Cloud 콘솔, gcloud CLI, Batch API, Go, 자바, Node.js, Python을 사용하여 작업을 설명할 수 있습니다.

콘솔

  1. 프로젝트의 작업을 표시하려면 Google Cloud 콘솔에서 작업 목록 페이지로 이동합니다.

    작업 목록으로 이동

  2. 작업을 설명하려면 작업 이름 열에서 작업 이름을 클릭합니다. 작업 세부정보 페이지가 열립니다.

    세부정보 탭이 기본적으로 열립니다. 자세한 내용을 보려면 다른 탭을 클릭하세요.

gcloud

gcloud CLI를 사용하여 작업을 설명하려면 gcloud batch jobs describe 명령어를 사용합니다.

gcloud batch jobs describe JOB_NAME --location LOCATION

다음을 바꿉니다.

  • JOB_NAME: 작업의 이름입니다.
  • LOCATION: 작업의 위치입니다.

API

Batch API를 사용하여 작업을 설명하려면 jobs.get 메서드를 사용합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 작업의 위치입니다.
  • JOB_NAME: 작업의 이름입니다.

Go

Go

자세한 내용은 Batch Go API 참조 문서를 확인하세요.

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: %v", 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: %v", err)
	}

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

	return response, nil
}

자바

Java

자세한 내용은 Batch Java API 참조 문서를 확인하세요.


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 참조 문서를 확인하세요.

/**
 * 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);
}

callGetJob();

Python

Python

자세한 내용은 Batch Python API 참조 문서를 확인하세요.


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}")

태스크 표시 및 설명

작업의 태스크 또는 작업의 태스크 그룹에 있는 태스크를 보려면 태스크를 표시합니다. 구성 세부정보를 보려면 태스크를 설명합니다.

태스크 표시

Google Cloud 콘솔, gcloud CLI, Batch API, Go, 자바, Node.js 또는 Python을 사용하여 작업 태스크를 표시할 수 있습니다.

콘솔

Google Cloud 콘솔을 사용하여 작업의 태스크 세부정보를 보려면 작업을 설명하여 작업 세부정보 페이지를 열고 태스크 세부정보 섹션을 참조하세요.

gcloud

gcloud CLI를 사용하여 작업의 태스크 그룹의 태스크를 표시하려면 gcloud batch tasks list 명령어를 사용합니다.

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

다음을 바꿉니다.

  • LOCATION: 작업의 위치입니다.
  • JOB_NAME: 작업의 이름입니다.

API

Batch API를 사용하여 작업의 태스크 그룹의 태스크를 표시하려면 tasks.list 메서드를 사용합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 작업의 위치입니다.
  • JOB_NAME: 작업의 이름입니다.
  • TASK_GROUP_NAME: 설명하려는 태스크 그룹의 이름입니다. group0으로 설정합니다.

Go

Go

자세한 내용은 Batch Go API 참조 문서를 확인하세요.

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: %v", 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: %v", err)
		}
		tasks = append(tasks, task)
	}

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

	return nil
}

자바

Java

자세한 내용은 Batch Java API 참조 문서를 확인하세요.


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 참조 문서를 확인하세요.

/**
 * 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);
  }
}

callListTasks();

Python

Python

자세한 내용은 Batch Python API 참조 문서를 확인하세요.

from typing 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}")

태스크 설명

Google Cloud 콘솔, gcloud CLI, Batch API, Go, 자바, Node.js 또는 Python을 사용하여 태스크를 설명할 수 있습니다.

콘솔

Google Cloud 콘솔을 사용하여 작업의 태스크 세부정보를 보려면 작업을 설명하여 작업 세부정보 페이지를 열고 태스크 세부정보 섹션을 참조하세요.

gcloud

gcloud CLI를 사용하여 태스크를 설명하려면 gcloud batch tasks describe 명령어를 사용합니다.

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

다음을 바꿉니다.

  • TASK_INDEX: 설명하려는 태스크의 색인입니다. 태스크 그룹에 있는 태스크의 색인은 0에서 시작하여 태스크마다 하나씩 증가합니다. 예를 들어 태스크가 4개인 태스크 그룹의 색인은 0, 1, 2, 3입니다.
  • TASK_GROUP_NAME: 설명하려는 태스크가 포함된 태스크 그룹의 이름입니다. group0으로 설정합니다.
  • JOB_NAME: 작업의 이름입니다.
  • LOCATION: 작업의 위치입니다.

API

Batch API를 사용하여 태스크를 설명하려면 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: 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 작업의 위치입니다.
  • JOB_NAME: 작업의 이름입니다.
  • TASK_GROUP_NAME: 설명하려는 태스크가 포함된 태스크 그룹의 이름입니다. group0으로 설정합니다.
  • TASK_INDEX: 설명하려는 태스크의 색인입니다. 태스크 그룹에 있는 태스크의 색인은 0에서 시작하여 태스크마다 하나씩 증가합니다. 예를 들어 태스크가 4개인 태스크 그룹의 색인은 0, 1, 2, 3입니다.

Go

Go

자세한 내용은 Batch Go API 참조 문서를 확인하세요.

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: %v", 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: %v", err)
	}

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

	return nil
}

자바

Java

자세한 내용은 Batch Java API 참조 문서를 확인하세요.


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 참조 문서를 확인하세요.

/**
 * 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);
}

callGetJob();

Python

Python

자세한 내용은 Batch Python API 참조 문서를 확인하세요.


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}")

다음 단계