Gestisci 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 del trasferimento

Puoi modificare le seguenti proprietà di un trasferimento esistente:

  • La descrizione del job di trasferimento
  • Le credenziali di origine di 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

gcloud CLI

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

gcloud transfer jobs update \
  JOB_NAME \
  [options]

Le variabili sono le seguenti:

  • 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 per rimuoverne la descrizione, esegui il seguente comando:

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

Google Cloud Console

Per modificare un job di trasferimento:

  1. Nella Google Cloud console, 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 un'esecuzione.

REST

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

Eseguire un job di trasferimento da una configurazione esistente

Puoi eseguire un job di trasferimento esistente. In questo modo puoi avviare i job senza pianificazione o avviare un job al di fuori della pianificazione.

gcloud CLI

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

gcloud transfer jobs run JOB_NAME

Puoi specificare il flag facoltativo --no-async per bloccare altre attività nel terminale fino al completamento dell'operazione di trasferimento.

Google Cloud Console

Per eseguire un trasferimento da una configurazione esistente:

  1. Nella Google Cloud console, 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 un'esecuzione.

REST

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

Monitorare un job di trasferimento

gcloud CLI

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 corrente, l'ora di inizio del job e la quantità di dati trasferiti. Vengono conteggiati anche i byte ignorati e gli errori.

Cloud Monitoring

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

Visualizzare i dettagli del job di trasferimento

gcloud CLI

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 elencandoli, separati da virgole, come valore di --job-names. Ometti --job-names per visualizzare le operazioni per tutti i job.

Google Cloud Console

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

  • La descrizione e il nome del job
  • Il tipo e la località di origine
  • La località di destinazione
  • La frequenza del job
  • Le statistiche del job

Per visualizzare i dettagli del job di trasferimento:

  1. Nella Google Cloud console, 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 transferJobs.get metodo per restituire informazioni su un job di trasferimento specifico, ad esempio il relativo ID operazione.

Librerie client

Quando utilizzi transferJobs.create, viene restituita una risorsa TransferJob.

Dopo aver creato il job, puoi controllare lo stato del trasferimento 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 job 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 esempi 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 riprenderlo in un secondo momento. Quando un trasferimento è in pausa, la pianificazione non attiverà nuovamente l'esecuzione del job.

gcloud CLI

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 messo in pausa in precedenza, che riavvia il job nello stesso punto in cui si trovava quando è stato messo in pausa, utilizza gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

Google Cloud Console

Per mettere in pausa un job di trasferimento:

  1. Nella Google Cloud console, 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 corrente viene visualizzato come In pausa.

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

  1. Nella Google Cloud console, 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 corrente viene visualizzato come In corso.

REST

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

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. Non impedisce l'avvio manuale di un job con l'API o con il comando gcloud jobs run.

gcloud CLI

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

gcloud transfer jobs update JOB_NAME --status=disabled

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

Google Cloud Console

Per disattivare un job di trasferimento:

  1. Nella Google Cloud console, 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 Disabilitare 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 transferJobs.patch metodo 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:

  • 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 è permanente. Una volta eliminato il job di trasferimento, questo viene rimosso dall'elenco dei job di trasferimento. Le informazioni sul job di trasferimento vengono eliminate completamente da Storage Transfer Service dopo 30 giorni.

In alternativa, puoi disattivare il job di trasferimento, che mantiene il job elencato nella pagina Job e ti consente di riattivarlo o modificarlo.

gcloud CLI

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

gcloud transfer jobs delete JOB_NAME

Google Cloud Console

Per eliminare un job di trasferimento:

  1. Nella Google Cloud console, 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 al job 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 il transferJobs.delete riferimento.

Visualizzare dettagli errore

Se riscontri errori durante l'esecuzione di un trasferimento, puoi visualizzare i dettagli dell'errore per risolvere il problema.

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

  1. Nella Google Cloud console, 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. Esegui una delle seguenti operazioni per visualizzare i dettagli del job:

    • 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 su 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 altro.

  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 le opzioni pertinenti per aiutarti a creare il filtro.