Visualizzare lavori e attività

Questo documento spiega come visualizzare i job e le attività Batch.

Prima di iniziare

  1. Se non hai mai utilizzato Batch, consulta la sezione Guida introduttiva a Batch e attiva Batch completando i prerequisiti per progetti e utenti.
  2. Per ottenere le autorizzazioni necessarie per visualizzare job e attività, chiedi all'amministratore di concederti il ruolo IAM Batch Job Viewer (roles/batch.jobsViewer) o Batch Job Editor (roles/batch.jobsEditor) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Visualizzare i job

Per visualizzare i tuoi job, seleziona uno dei seguenti metodi:

Visualizzare un elenco dei tuoi lavori

Puoi visualizzare un elenco dei job nel progetto corrente utilizzando la consoleGoogle Cloud , gcloud CLI, l'API Batch, Go, Java, Node.js, Python o C++.

Console

  1. Per visualizzare un elenco di job nel progetto corrente utilizzando la consoleGoogle Cloud , vai alla pagina Elenco job.

    Vai all'elenco di job

    L'elenco dei job potrebbe essere suddiviso su più pagine. Se devi passare alla pagina successiva, fai clic su Avanti nella parte inferiore dello schermo.

  2. (Facoltativo) Se vuoi filtrare l'elenco dei lavori, fai clic su Filtro. Poi, digita o seleziona una proprietà e un valore.

    Ad esempio, per filtrare l'elenco in modo da includere solo i job in uno stato specifico, inserisci quanto segue:

    Status:JOB_STATE
    

    Sostituisci JOB_STATE con uno stato del job, ad esempio FAILED.

gcloud

Visualizza tutte le offerte di lavoro

Per visualizzare un elenco di job nel progetto corrente utilizzando gcloud CLI, utilizza il comando gcloud batch jobs list.

gcloud batch jobs list

Visualizzare un elenco filtrato di job

(Facoltativo) Puoi aggiungere uno o più flag per visualizzare un elenco filtrato di lavori:

  • Per visualizzare solo i lavori in una località specifica, includi il flag --location.

  • Per visualizzare solo i job in base a un'espressione di filtro, specifica il flag --filter.

Ad esempio, utilizza il seguente comando:

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

Sostituisci quanto segue:

  • LOCATION: la posizione in cui esistono uno o più lavori.

  • FILTER_EXPRESSION: un'espressione di filtro che definisce i lavori che vuoi elencare. L'espressione di filtro deve definire una o più coppie proprietà-valore separate da zero o più operatori booleani (AND, OR e NOT).

    Ad esempio, vedi le seguenti espressioni di filtro:

    • Filtra in base allo stato del job:per visualizzare solo i job in uno stato specifico, utilizza la seguente espressione di filtro:

      status.state="JOB_STATE"
      

      Sostituisci JOB_STATE con uno stato del job, ad esempio FAILED.

    • Filtra in base alle etichette: supponiamo che il tuo progetto abbia definito le seguenti etichette personalizzate:

      • Per indicare i job e le relative risorse creati dal tuo team di ricerca quando visualizzi i report di fatturazione Cloud, alcuni dei tuoi job e delle relative risorse hanno un'etichetta team impostata su research.

      • Per indicare i workload sensibili al tempo, alcuni job hanno un'etichetta deadline impostata su vari valori.

      • Per indicare i runnable che il tuo team di sviluppo ha testato correttamente, alcuni runnable hanno un'etichetta tested impostata su true.

      Quindi, potresti specificare la seguente espressione di filtro:

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

      Questa espressione di filtro elenca solo i job che soddisfano tutti i seguenti criteri:

      • Job del team di ricerca con un'etichetta team nella norma di allocazione del job impostata su research.

      • Job che soddisfano almeno uno dei seguenti criteri:

        • Job sensibili al tempo, che hanno un'etichetta deadline sul job impostata su qualsiasi valore.

        • Job con almeno un eseguibile testato correttamente, ovvero job con almeno un eseguibile con un'etichetta tested impostata su true.

API

Visualizza tutte le offerte di lavoro

Per visualizzare un elenco di job nel progetto corrente per una località specifica utilizzando l'API Batch, invia una richiesta GET al metodo jobs.list.

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

Sostituisci quanto segue:

Visualizzare un elenco filtrato di job

(Facoltativo) Puoi specificare il parametro di query filter per visualizzare un elenco filtrato di job in base a un'espressione di filtro.

Ad esempio, invia la seguente richiesta GET:

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

Sostituisci FILTER_EXPRESSION con un'espressione di filtro che utilizza la codifica URL. L'espressione di filtro deve definire una o più coppie proprietà-valore separate da zero o più operatori booleani (AND, OR e NOT).

Ad esempio, vedi le seguenti espressioni di filtro:

  • Filtra in base allo stato del job:per visualizzare solo i job in uno stato specifico, utilizza la seguente espressione di filtro:

    status.state="JOB_STATE"
    

    Sostituisci JOB_STATE con uno stato del job, ad esempio FAILED.

  • Filtra in base alle etichette: supponiamo che il tuo progetto abbia definito le seguenti etichette personalizzate:

    • Per indicare i job e le relative risorse creati dal tuo team di ricerca quando visualizzi i report di fatturazione Cloud, alcuni dei tuoi job e delle relative risorse hanno un'etichetta team impostata su research.

    • Per indicare i workload sensibili al tempo, alcuni job hanno un'etichetta deadline impostata su vari valori.

    • Per indicare i runnable che il tuo team di sviluppo ha testato correttamente, alcuni runnable hanno un'etichetta tested impostata su true.

    Quindi, potresti specificare la seguente espressione di filtro:

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

    Questa espressione di filtro elenca solo i job che soddisfano tutti i seguenti criteri:

    • Job del team di ricerca con un'etichetta team nella norma di allocazione del job impostata su research.

    • Job che soddisfano almeno uno dei seguenti criteri:

      • Job sensibili al tempo, che hanno un'etichetta deadline sul job impostata su qualsiasi valore.

      • Job con almeno un eseguibile testato correttamente, ovvero job con almeno un eseguibile con un'etichetta tested impostata su true.

Go

Go

Per saperne di più, consulta la documentazione di riferimento dell'API Batch Go.

Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per saperne di più, consulta la documentazione di riferimento dell'API Batch Java.

Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per saperne di più, consulta la documentazione di riferimento dell'API Batch Node.js.

Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

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