전송 관리

이 페이지에서는 기존 전송 작업 및 작업을 관리하는 방법을 보여줍니다.

새 전송 작업을 만들려면 전송 만들기를 참조하세요.

전송 구성 수정

기존 전송의 다음 속성을 수정할 수 있습니다.

  • 전송 작업의 설명
  • 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. 실행 재개를 클릭합니다.

    현재 작업(Operation)의 상태가 진행 중으로 표시됩니다.

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. 오류를 필터링하려면 속성 이름 또는 값 입력 필드에 필터링할 속성을 입력합니다.

    필드에 커서를 놓으면 필터를 만드는 데 도움이 되는 관련 옵션이 포함된 드롭다운 메뉴가 표시됩니다.