Gestire i trasferimenti

Questa pagina mostra come gestire i job e le operazioni di trasferimento esistenti.

Per creare un nuovo job di trasferimento, consulta Creare trasferimenti.

Modificare una configurazione di trasferimento

Puoi modificare le seguenti proprietà di un trasferimento esistente:

  • La descrizione del job di trasferimento
  • Credenziali dell'origine Microsoft Azure Blob Storage o Amazon S3
  • Eventuali filtri applicati al job di trasferimento
  • Opzioni per sovrascrivere o eliminare i file
  • La pianificazione del job di trasferimento

Interfaccia a riga di comando gcloud

Per modificare una configurazione di trasferimento esistente, utilizza il comando gcloud transfer jobs update.

gcloud transfer jobs update \
  JOB_NAME \
  [options]

Dove:

  • JOB_NAME è il nome univoco del job da aggiornare.

  • Le opzioni che possono essere aggiornate sono elencate eseguendo gcloud transfer jobs update --help.

Ad esempio, per aggiornare l'origine e la destinazione di un job e rimuovere la relativa descrizione, esegui il seguente comando:

gcloud transfer jobs update \
  JOB_NAME \
  --source=gs://new-bucket-1 \
  --destination=gs://new-bucket-2 \
  --clear-description

Console Google Cloud

Per modificare un job di trasferimento:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

  3. Fai clic su Configurazione. Viene visualizzata la configurazione del job di trasferimento.

  4. Per modificare un elemento, fai clic su Modifica accanto all'elemento.

  5. Per avviare un job con le modifiche, fai clic su Avvia esecuzione.

REST

Per modificare una configurazione di trasferimento, utilizza il metodo transferJobs.patch.

Eseguire un job di trasferimento da una configurazione esistente

Puoi eseguire un job di trasferimento esistente. In questo modo puoi avviare job che non hanno una programmazione o avviare un job al di fuori della relativa pianificazione.

Interfaccia a riga di comando gcloud

Per eseguire un trasferimento da una configurazione esistente, utilizza gcloud transfer jobs run:

gcloud transfer jobs run JOB_NAME

Il flag facoltativo --no-async può essere specificato per bloccare altre attività nel terminal fino al completamento dell'operazione di trasferimento.

Console Google Cloud

Per eseguire un trasferimento da una configurazione esistente:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

  3. Per avviare un job di trasferimento, fai clic su Avvia esecuzione.

REST

Per eseguire un job di trasferimento, utilizza il metodo transferJobs.run.

Monitorare un job di trasferimento

Interfaccia a riga di comando gcloud

Per monitorare l'avanzamento di un job in tempo reale, utilizza gcloud transfer jobs monitor.

gcloud transfer jobs monitor JOB_NAME

La risposta mostra l'operazione in corso, l'ora di inizio del job e la quantità di dati trasferiti. Vengono conteggiati anche i byte e gli errori ignorati.

Cloud Monitoring

Per informazioni dettagliate sull'utilizzo di Cloud Monitoring con Storage Transfer Service, consulta Monitorare i job di trasferimento.

Visualizza i dettagli del job di trasferimento

Interfaccia a riga di comando gcloud

Per visualizzare i dettagli del job di trasferimento, utilizza gcloud transfer jobs describe:

gcloud transfer jobs describe JOB_NAME

Per visualizzare l'operazione più recente di questo job, passa il valore di latestOperationName al comando operations describe:

gcloud transfer operations describe OPERATION_NAME

Per elencare tutte le operazioni di trasferimento di un job, utilizza il comando gcloud transfer operations list:

gcloud transfer operations list --job-names=JOB_NAME

Puoi visualizzare le operazioni per più job elencandole, separate da virgole, come valore di --job-names. Ometti --job-names per visualizzare le operazioni per tutti i job.

Console Google Cloud

Puoi visualizzare i seguenti dettagli del job dalla console Google Cloud:

  • La descrizione e il nome del ruolo
  • Il tipo e la posizione della sorgente
  • La località di destinazione
  • Frequenza dei job
  • Statistiche job

Per visualizzare i dettagli del job di trasferimento:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

Per visualizzare i dettagli di una determinata esecuzione, fai clic su Ora di inizio per l'esecuzione del job. Sono disponibili le seguenti informazioni sul job:

  • Stato del trasferimento
  • Ore di inizio e di fine
  • Durata
  • Avanzamento
  • Dati trasferiti
  • Numero di errori
  • Dati ignorati
  • Velocità media stimata

REST

Per visualizzare i dettagli di un job di trasferimento, utilizza il metodo transferJobs.get per restituire informazioni su un job di trasferimento specifico, ad esempio il relativo ID operazione.

Librerie client

Una risorsa TransferJob viene rimessa quando utilizzi transferJobs.create.

Puoi controllare lo stato del trasferimento dopo aver creato il job utilizzando transferJobs.get. Se l'operazione del job di trasferimento è iniziata, viene restituito un TransferJob contenente un campo latestOperationName compilato. In caso contrario, se l'operazione del job di trasferimento non è iniziata, il campo latestOperationName è vuoto.

Per controllare lo stato di un processo di trasferimento

REST

Richiesta utilizzando transferJobs get:
GET https://storagetransfer.googleapis.com/v1/{jobName="name"}

Vai

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/longrunning/autogen/longrunningpb"
	storagetransfer "cloud.google.com/go/storagetransfer/apiv1"
	"cloud.google.com/go/storagetransfer/apiv1/storagetransferpb"
)

func checkLatestTransferOperation(w io.Writer, projectID string, jobName string) (*storagetransferpb.TransferOperation, error) {
	// Your Google Cloud Project ID
	// projectID := "my-project-id"

	// The name of the job whose latest operation to check
	// jobName := "transferJobs/1234567890"
	ctx := context.Background()
	client, err := storagetransfer.NewClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("storagetransfer.NewClient: %w", err)
	}
	defer client.Close()

	job, err := client.GetTransferJob(ctx, &storagetransferpb.GetTransferJobRequest{
		JobName:   jobName,
		ProjectId: projectID,
	})
	if err != nil {
		return nil, fmt.Errorf("failed to get transfer job: %w", err)
	}

	latestOpName := job.LatestOperationName
	if latestOpName != "" {
		lro, err := client.LROClient.GetOperation(ctx, &longrunningpb.GetOperationRequest{
			Name: latestOpName,
		})
		if err != nil {
			return nil, fmt.Errorf("failed to get transfer operation: %w", err)
		}
		latestOp := &storagetransferpb.TransferOperation{}
		lro.Metadata.UnmarshalTo(latestOp)

		fmt.Fprintf(w, "the latest transfer operation for job %q is: \n%v", jobName, latestOp)
		return latestOp, nil
	} else {
		fmt.Fprintf(w, "Transfer job %q hasn't run yet, try again later", jobName)
		return nil, nil
	}
}

Java

Cerchi sample precedenti? Consulta la guida alla migrazione di Storage Transfer Service.


import com.google.longrunning.Operation;
import com.google.storagetransfer.v1.proto.StorageTransferServiceClient;
import com.google.storagetransfer.v1.proto.TransferProto.GetTransferJobRequest;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferJob;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferOperation;
import java.io.IOException;

public class CheckLatestTransferOperation {

  // Gets the requested transfer job and checks its latest operation
  public static void checkLatestTransferOperation(String projectId, String jobName)
      throws IOException {
    // Your Google Cloud Project ID
    // String projectId = "your-project-id";

    // The name of the job to check
    // String jobName = "myJob/1234567890";

    StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

    // Get transfer job and check latest operation
    TransferJob transferJob =
        storageTransfer.getTransferJob(
            GetTransferJobRequest.newBuilder().setJobName(jobName).setProjectId(projectId).build());
    String latestOperationName = transferJob.getLatestOperationName();

    if (!latestOperationName.isEmpty()) {
      Operation operation = storageTransfer.getOperationsClient().getOperation(latestOperationName);
      TransferOperation latestOperation =
          TransferOperation.parseFrom(operation.getMetadata().getValue());

      System.out.println("The latest operation for transfer job " + jobName + " is:");
      System.out.println(latestOperation.toString());

    } else {
      System.out.println(
          "Transfer job "
              + jobName
              + " hasn't run yet,"
              + " try again once the job starts running.");
    }
  }
}

Node.js


// Imports the Google Cloud client library
const {
  StorageTransferServiceClient,
} = require('@google-cloud/storage-transfer');

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of the Google Cloud Platform Project that owns the job
// projectId = 'my-project-id'

// Storage Transfer Service job name
// jobName = 'transferJobs/1234567890'

// Creates a client
const client = new StorageTransferServiceClient();

/**
 * Checks the latest transfer operation for a given transfer job.
 */
async function checkLatestTransferOperation() {
  const [transferJob] = await client.getTransferJob({projectId, jobName});

  if (transferJob.latestOperationName) {
    const [transferOperation] = await client.operationsClient.getOperation({
      name: transferJob.latestOperationName,
    });

    const operation = JSON.stringify(transferOperation, null, 2);

    console.log(`Latest transfer operation for '${jobName}': ${operation}`);
  } else {
    console.log(`Transfer job '${jobName}' has not ran yet.`);
  }
}

checkLatestTransferOperation();

Python

Cerchi esempi precedenti? Consulta la guida alla migrazione di Storage Transfer Service.

from google.cloud import storage_transfer


def check_latest_transfer_operation(project_id: str, job_name: str):
    """Checks the latest transfer operation for a given transfer job."""

    client = storage_transfer.StorageTransferServiceClient()

    # The ID of the Google Cloud Platform Project that owns the job
    # project_id = 'my-project-id'

    # Storage Transfer Service job name
    # job_name = 'transferJobs/1234567890'

    transfer_job = client.get_transfer_job(
        {
            "project_id": project_id,
            "job_name": job_name,
        }
    )

    if transfer_job.latest_operation_name:
        response = client.transport.operations_client.get_operation(
            transfer_job.latest_operation_name
        )
        operation = storage_transfer.TransferOperation.deserialize(
            response.metadata.value
        )

        print(f"Latest transfer operation for `{job_name}`: {operation}")
    else:
        print(f"Transfer job {job_name} has not ran yet.")

Mettere in pausa un job di trasferimento

Puoi mettere in pausa un trasferimento attualmente in corso. Quando metti in pausa il trasferimento, lo stato del job viene mantenuto e puoi riattivarlo in un secondo momento. Mentre un trasferimento è in pausa, la pianificazione non attiverà l'esecuzione di nuovo del job.

Interfaccia a riga di comando gcloud

Per mettere in pausa un job di trasferimento, passa il nome dell'operazione corrente del job a gcloud transfer operations pause.

gcloud transfer operations pause OPERATION_NAME

Per riprendere un job di trasferimento in pausa in precedenza, che lo riavvia nello stesso punto in cui era stato messo in pausa, utilizza gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

Console Google Cloud

Per mettere in pausa un job di trasferimento:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

  3. Fai clic su Metti in pausa l'esecuzione. Lo stato dell'operazione in corso viene visualizzato come In pausa.

Per riprendere un job di trasferimento messo in pausa in precedenza, riavvialo nello stesso punto in cui si trovava quando è stato messo in pausa.

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

  3. Fai clic su Riprendi esecuzione.

    Lo stato dell'operazione in corso è In corso.

REST

Per mettere in pausa un job di trasferimento, utilizza il metodo transferOperations.pause.

Disattivare un job di trasferimento

La disattivazione di un job di trasferimento impedisce l'avvio di ulteriori operazioni pianificate o di operazioni avviate manualmente dalla console. Tuttavia, non impedisce l'avvio manuale di un job con l'API o con il comando gcloudjobs run.

Interfaccia a riga di comando gcloud

Per disattivare un job di trasferimento, aggiorna lo stato del job su disabled.

gcloud transfer jobs update JOB_NAME --status=disabled

Per riattivare un job, imposta --status=enabled.

Console Google Cloud

Per disattivare un job di trasferimento:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

  3. Fai clic su Disattiva job. Viene visualizzata la finestra di dialogo Disattivare il job di trasferimento?.

  4. Leggi la finestra di dialogo, quindi conferma la disattivazione del job facendo clic su Conferma.

    Nella parte superiore della pagina Dettagli job viene visualizzato un avviso che ti ricorda che il job è disattivato.

REST

Utilizza il metodo transferJobs.patch per impostare lo stato del job di trasferimento su DISABLED.

Eliminare un job di trasferimento

Puoi eliminare i job di trasferimento di cui non hai più bisogno. L'eliminazione di un job comporta quanto segue:

  • Interrompe tutti i trasferimenti esistenti che fanno parte del job.
  • Interrompe tutti i trasferimenti ricorrenti che fanno parte del job.
  • Cancella i dettagli di configurazione del job.

L'eliminazione di un job è definitiva. Una volta eliminato, il job di trasferimento viene rimosso dall'elenco dei job di trasferimento. Le informazioni sui job di trasferimento vengono eliminate completamente da Storage Transfer Service dopo 30 giorni.

In alternativa, puoi disattivare il job di trasferimento, mantenendolo elencato nella pagina Job e consentendoti di riattivarlo o modificarlo.

Interfaccia a riga di comando gcloud

Per eliminare un job di trasferimento, usa gcloud transfer jobs delete.

gcloud transfer jobs delete JOB_NAME

Console Google Cloud

Per eliminare un job di trasferimento:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Seleziona la casella di controllo accanto al job di trasferimento che vuoi eliminare.

  3. Fai clic su Elimina job.

    Viene visualizzata la finestra di dialogo Eliminare il job di trasferimento?.

  4. Leggi la finestra di dialogo, quindi conferma l'eliminazione del job digitando il nome assegnato automaticamente nel campo e fai clic su Elimina.

    Il job viene rimosso dalla pagina Job.

REST

Per eliminare un job di trasferimento utilizzando l'API REST, consulta la documentazione di riferimento transferJobs.delete.

Visualizza dettagli errore

Se riscontri errori durante l'esecuzione di un trasferimento, puoi visualizzare i dettagli dell'errore per aiutarti a risolverlo.

Per visualizzare i dettagli dell'errore per l'esecuzione di un job di trasferimento:

  1. Nella console Google Cloud, vai alla pagina Storage Transfer Service.

    Vai a Storage Transfer Service

  2. Fai clic sulla descrizione del job di trasferimento. Viene visualizzata la pagina Dettagli job.

  3. Per visualizzare i dettagli del job, esegui una delle seguenti operazioni:

    • Esecuzione del job più recente: fai clic sul pulsante Visualizza dettagli errore o sul link Visualizza dettagli errore. Viene visualizzata la pagina Dettagli errore.

    • Esecuzione del job storico:

      1. Fai clic sull'ora di inizio dell'esecuzione del job.

        Viene visualizzata la pagina Dettagli esecuzione.

      2. Fai clic sul link Visualizza dettagli errore.

        Viene visualizzata la pagina Dettagli errore.

  4. Per visualizzare ulteriori dettagli su ogni errore visualizzato, fai clic su Espandi di più.

  5. Per filtrare gli errori, inserisci le proprietà da filtrare nel campo Inserisci il nome o il valore della proprietà.

    Quando posizioni il cursore nel campo, viene visualizzato un menu a discesa con opzioni pertinenti per aiutarti a creare il filtro.