転送の管理

このページでは、既存の転送ジョブとオペレーションを管理する方法について説明します。

新しい転送ジョブを作成するには、転送を作成するをご覧ください。

転送構成の編集

既存の転送の次のプロパティを編集できます。

  • 転送ジョブの説明
  • Microsoft Azure Blob Storage または Amazon S3 のソース認証情報
  • 転送ジョブに適用されたフィルタ
  • ファイルを上書きまたは削除するオプション
  • 転送ジョブのスケジュール

gcloud CLI

既存の転送構成を編集するには、gcloud transfer jobs update コマンドを使用します。

gcloud transfer jobs update \
  JOB_NAME \
  [options]

ここで

  • JOB_NAME は、更新するジョブの一意の名前です。

  • 更新できるオプションは、gcloud transfer jobs update --help を実行するとリスト表示されます。

たとえば、ジョブの送信元と宛先を更新し、説明を削除するには、次のコマンドを実行します。

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

Google Cloud コンソール

転送ジョブを編集するには、次の手順を行います。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

  3. [構成] をクリックします。転送ジョブの構成が表示されます。

  4. 項目を変更するには、項目の横にある [編集] をクリックします。

  5. 編集したジョブを開始するには、[実行を開始] をクリックします。

REST

転送構成を編集するには、transferJobs.patch メソッドを使用します。

既存の構成から転送ジョブを実行する

既存の転送ジョブを実行できます。これにより、スケジュールのないジョブを開始したり、スケジュール外のジョブを開始できます。

gcloud CLI

既存の構成から転送を実行するには、gcloud transfer jobs run を使用します。

gcloud transfer jobs run JOB_NAME

オプションの --no-async フラグを指定して、転送オペレーションが完了するまでターミナル内の他のタスクをブロックできます。

Google Cloud コンソール

既存の構成から転送を実行する手順は次のとおりです。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

  3. 転送ジョブを開始するには、[実行を開始] をクリックします。

REST

転送ジョブを実行するには、transferJobs.run メソッドを使用します。

転送ジョブをモニタリングする

gcloud CLI

ジョブの進行状況をリアルタイムでモニタリングするには、gcloud transfer jobs monitor を使用します。

gcloud transfer jobs monitor JOB_NAME

レスポンスには、現在のオペレーション、ジョブ開始時間、転送されたデータの量が表示されます。スキップされたバイト数とエラー数もカウントされます。

Cloud Monitoring

Storage Transfer Service で Cloud Monitoring を使用する方法について詳しくは、転送ジョブのモニタリングをご覧ください。

転送ジョブの詳細を表示する

gcloud CLI

転送ジョブの詳細を表示するには、gcloud transfer jobs describe を使用します。

gcloud transfer jobs describe JOB_NAME

このジョブの最新のオペレーションを表示するには、latestOperationName の値を operations describe コマンドに渡します。

gcloud transfer operations describe OPERATION_NAME

ジョブの転送オペレーションを一覧表示するには、gcloud transfer operations list コマンドを使用します。

gcloud transfer operations list --job-names=JOB_NAME

複数のジョブのオペレーションを表示するには、--job-names の値としてカンマ区切りで指定します。すべてのジョブのオペレーションを表示するには、--job-names を省略します。

Google Cloud コンソール

Google Cloud コンソールで、ジョブの詳細を確認できます。

  • ジョブの説明と名前
  • ソースの種類と場所
  • 宛先の場所
  • ジョブの頻度
  • ジョブ統計

転送ジョブの詳細を表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

特定の実行の詳細を表示するには、ジョブ実行の [開始時間] をクリックします次のジョブ情報を使用できます。

  • 転送のステータス
  • 開始時間と停止時間
  • 期間
  • 処理状況
  • 転送済みデータ
  • エラーの数
  • スキップされたデータ
  • 推定平均速度

REST

転送ジョブの詳細を表示するには、transferJobs.get メソッドを使用して、オペレーション ID などの特定の転送ジョブに関する情報を返します。

クライアント ライブラリ

transferJobs.create を使用すると、TransferJob リソースが返されます。

transferJobs.get を使用して、ジョブを作成した後、転送のステータスを確認できます。転送ジョブのオペレーションが開始すると、入力済みの latestOperationName フィールドを含む TransferJob を返します。転送ジョブのオペレーションがまだ開始していない場合、latestOperationName フィールドは空になります。

転送ジョブのステータスを確認するには

REST

transferJobs.get を使ってリクエストします。
GET https://storagetransfer.googleapis.com/v1/{jobName="name"}

Go

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

古いサンプルをお探しの場合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

古いサンプルをお探しの場合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.")

転送ジョブを一時停止する

現在進行中の転送は一時停止できます。転送を一時停止すると、ジョブの状態は保持され、後で一時停止を解除できます。転送が一時停止している間は、スケジュールによってジョブが再度実行されることはありません。

gcloud CLI

転送ジョブを一時停止するには、ジョブの現在のオペレーション名を gcloud transfer operations pause に渡します。

gcloud transfer operations pause OPERATION_NAME

以前に一時停止した転送ジョブを再開すると、一時停止したときと同じ場所でジョブが再開するようにするには、gcloud transfer operations resume を使用します。

gcloud transfer operations resume OPERATION_NAME

Google Cloud コンソール

転送ジョブを一時停止するには、次の手順を行います。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

  3. [実行を一時停止] をクリックします。現在のオペレーションのステータスが「一時停止中」と表示されます。

一時停止していた転送ジョブを再開し、一時停止時と同じ場所でジョブを再開するには、次の手順を行います。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

  3. [実行を再開] をクリックします。

    現在のオペレーションのステータスが「処理中」と表示されます。

REST

転送ジョブを一時停止するには、transferOperations.pause メソッドを使用します。

転送ジョブを無効にする

転送ジョブを無効にすると、その転送ジョブはその後のスケジュールされたオペレーションを開始できなくなります。また、コンソールから手動で開始されたオペレーションも開始できなくなります。API または jobs run gcloud コマンドを使用してジョブを手動で開始することはできません。

gcloud CLI

転送ジョブを無効にするには、ジョブのステータスを disabled に更新します。

gcloud transfer jobs update JOB_NAME --status=disabled

ジョブを再度有効にするには、--status=enabled を設定します。

Google Cloud コンソール

転送ジョブを無効にするには、次の手順を行います。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

  3. [ジョブを無効にする] をクリックします。[転送ジョブを無効にしますか?] ダイアログが表示されます。

  4. ダイアログを読み、[確認] をクリックしてジョブの無効化を確認します。

    [ジョブの詳細] ページの上部に、ジョブが無効になっていることを通知する通知が表示されます。

REST

transferJobs.patch メソッドを使用して、転送ジョブのステータスDISABLED に設定します。

転送ジョブを削除する

不要になった転送ジョブは削除できます。ジョブを削除すると、次のようになります。

  • ジョブに含まれる既存の転送をすべて停止します。
  • ジョブに含まれる定期的な転送を停止します。
  • ジョブの構成データを消去します。

ジョブを削除すると、元に戻すことはできません。転送ジョブを削除すると、転送ジョブのリストから削除されます。転送ジョブ情報は、30 日後に Storage Transfer Service から完全に削除されます。

また、転送ジョブを無効にすることもできます。これにより、ジョブが [ジョブ] ページに一覧表示され、ジョブの有効化または変更ができるようになります。

gcloud CLI

転送ジョブを削除するには、gcloud transfer jobs delete を使用します。

gcloud transfer jobs delete JOB_NAME

Google Cloud コンソール

転送ジョブを削除するには、次の手順を行います。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 削除する転送ジョブの横にあるチェックボックスをオンにします。

  3. [ジョブの削除] をクリックします。

    [転送ジョブを削除しますか?] ダイアログが表示されます。

  4. ダイアログを読み、ジョブに自動的に割り当てられた名前をフィールドに入力します。[削除] をクリックし、ジョブの削除を確定します。

    [ジョブ] ページからジョブが削除されます。

REST

REST API を使用して転送ジョブを削除するには、transferJobs.delete リファレンスをご覧ください。

エラーの詳細を表示する

転送の実行中にエラーが発生した場合は、エラーの詳細を確認すると、エラーのトラブルシューティングに役立ちます。

転送ジョブ実行のエラーの詳細を表示するには、次の手順を行います。

  1. Google Cloud コンソールで、[Storage Transfer Service] ページに移動します。

    Storage Transfer Service に移動

  2. 転送ジョブの説明をクリックします。[ジョブの詳細] ページが表示されます。

  3. ジョブの詳細を表示するには、次のいずれかを行います。

    • 最新のジョブ実行: [エラーの詳細を表示] ボタンまたは [エラーの詳細を表示] リンクをクリックします。[エラーの詳細] ページが表示されます。

    • 過去のジョブ実行:

      1. ジョブ実行の [開始時間] をクリックします。

        [実行の詳細] ページが表示されます。

      2. [エラーの詳細を表示] リンクをクリックします。

        [エラー詳細] ページが表示されます。

  4. 表示されたエラーの確認を表示するには、[詳細を読む] をクリックします。

  5. エラーをフィルタするには、[プロパティ名または値を入力] フィールドに、フィルタするプロパティを入力します。

    フィールドにカーソルを置くと、フィルタの作成に役立つオプションなどがプルダウン メニューに表示されます。