ניהול העברות

בדף הזה מוסבר איך לנהל משימות והעברות קיימות.

כדי ליצור העברה חדשה, אפשר לעיין במאמר בנושא יצירת העברות.

עריכת הגדרות העברה

אפשר לערוך את המאפיינים הבאים של העברה קיימת:

  • התיאור של עבודת ההעברה
  • פרטי כניסה למקור ב-Microsoft Azure Blob Storage או ב-Amazon S3
  • כל המסננים שהוחלו על עבודת ההעברה
  • אפשרויות להחלפה או למחיקה של קבצים
  • לוח הזמנים של עבודת ההעברה

‫CLI של gcloud

כדי לערוך הגדרת העברה קיימת, משתמשים בפקודה 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. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

  3. לוחצים על הגדרה. מוצגת ההגדרה של משימת ההעברה.

  4. כדי לשנות פריט, לוחצים על עריכה לצד הפריט.

  5. כדי להתחיל את העבודה עם העריכות, לוחצים על התחלת הרצה.

REST

כדי לערוך הגדרות של העברה, משתמשים בשיטה transferJobs.patch.

הרצת משימת העברה מהגדרות קיימות

אפשר להריץ משימת העברה קיימת. האפשרות הזו מאפשרת להפעיל משימות שלא מתוזמנות, או להפעיל משימה מחוץ ללוח הזמנים שלה.

‫CLI של gcloud

כדי להריץ העברה ממערך הגדרות קיים, משתמשים בפקודה gcloud transfer jobs run:

gcloud transfer jobs run JOB_NAME

אפשר לציין את האפשרות --no-async כדי לחסום משימות אחרות במסוף עד להשלמת פעולת ההעברה.

מסוף Google Cloud

כדי להפעיל העברה מהגדרות קיימות:

  1. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

  3. כדי להתחיל את עבודת ההעברה, לוחצים על Start a run (התחלת הרצה).

REST

כדי להריץ העברת נתונים, משתמשים בשיטה transferJobs.run.

מעקב אחרי משימת העברה

‫CLI של gcloud

כדי לעקוב אחרי התקדמות העבודה בזמן אמת, משתמשים ב-gcloud transfer jobs monitor.

gcloud transfer jobs monitor JOB_NAME

בתגובה מוצגת הפעולה הנוכחית, שעת ההתחלה של העבודה וכמות הנתונים שהועברו. גם בייטים שהמערכת דילגה עליהם ושגיאות נספרים.

Cloud Monitoring

במאמר מעקב אחרי משימות העברה מוסבר איך משתמשים ב-Cloud Monitoring עם Storage Transfer Service.

הצגת פרטי העברת נתונים

‫CLI של gcloud

כדי לראות את פרטי משימת ההעברה, משתמשים ב-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. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

כדי להציג את הפרטים של הרצה מסוימת, לוחצים על זמן ההתחלה של הרצת העבודה. המידע הבא על המשרה זמין:

  • סטטוס ההעברה
  • שעת התחלה ושעת סיום
  • משך הזמן
  • התקדמות
  • נתונים שהועברו
  • מספר השגיאות
  • הנתונים שהמערכת דילגה עליהם
  • הערכת מהירות ממוצעת

REST

כדי להציג את הפרטים של עבודת העברה, משתמשים בשיטה transferJobs.get כדי להחזיר מידע על עבודת העברה ספציפית, כמו מזהה הפעולה שלה.

ספריות לקוח

משאב TransferJob מוחזר כשמשתמשים ב-transferJobs.create.

אחרי שיוצרים את העבודה, אפשר לבדוק את הסטטוס של ההעברה באמצעות transferJobs.get. אם הפעולה של העברת העבודה התחילה, הפונקציה מחזירה TransferJob עם שדה latestOperationName מאוכלס. אחרת, אם הפעולה של העברת העבודה לא התחילה, השדה 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.")

השהיה של משימת העברה

אפשר להשהות העברה שנמצאת כרגע בתהליך. כשמשהים את ההעברה, מצב העבודה נשמר ואפשר לבטל את ההשהיה בהמשך. בזמן שההעברה מושהית, לוח הזמנים לא יפעיל שוב את המשימה.

‫CLI של gcloud

כדי להשהות עבודת העברה, מעבירים את שם הפעולה הנוכחי של העבודה אל gcloud transfer operations pause.

gcloud transfer operations pause OPERATION_NAME

כדי להמשיך עבודת העברה שהושהתה קודם, ולהפעיל מחדש את העבודה באותו מקום שבו היא הושהתה, משתמשים ב-gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

מסוף Google Cloud

כדי להשהות עבודת העברה:

  1. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

  3. לוחצים על השהיית ההפעלה. הסטטוס של הפעולה הנוכחית מוצג כPaused.

כדי להמשיך עבודת העברה שהושהתה קודם, ולהפעיל מחדש את העבודה באותו מקום שבו היא הייתה כשהיא הושהתה, פועלים לפי השלבים הבאים.

  1. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

  3. לוחצים על המשך ההפעלה.

    הסטטוס של הפעולה הנוכחית מוצג כבתהליך.

REST

כדי להשהות עבודת העברה, משתמשים בשיטה transferOperations.pause.

השבתה של משימת העברה

השבתה של עבודת העברה מונעת ממנה להתחיל פעולות מתוזמנות נוספות או פעולות שהתחילו באופן ידני דרך המסוף. היא לא מונעת הפעלה ידנית של עבודה באמצעות ה-API או באמצעות הפקודה jobs run gcloud.

‫CLI של gcloud

כדי להשבית משימת העברה, מעדכנים את הסטטוס של המשימה ל-disabled.

gcloud transfer jobs update JOB_NAME --status=disabled

כדי להפעיל מחדש משימה, מגדירים את --status=enabled.

מסוף Google Cloud

כדי להשבית עבודת העברה:

  1. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

  3. לוחצים על השבתת העבודה. מופיעה תיבת הדו-שיח השבתת עבודת ההעברה?.

  4. קוראים את תיבת הדו-שיח ולוחצים על אישור כדי לאשר את השבתת המשרה.

    בחלק העליון של הדף פרטי המשרה מוצגת הודעה שמזכירה לכם שהמשרה מושבתת.

REST

משתמשים בשיטה transferJobs.patch כדי להגדיר את הסטטוס של משימת ההעברה לערך DISABLED.

מחיקת משימת העברה

אפשר למחוק משימות העברה שכבר לא צריך. כשמוחקים משימה, קורה הדבר הבא:

  • הפסקת העברות קיימות שכלולות בעבודה.
  • הפסקת העברות חוזרות שכלולות בעבודה.
  • מוחק את פרטי ההגדרה של המשימה.

מחיקת עבודה היא פעולה בלתי הפיכה. אחרי שמוחקים את עבודת ההעברה, היא מוסרת מרשימת עבודות ההעברה. פרטי העברת העבודות נמחקים לחלוטין מ-Storage Transfer Service אחרי 30 ימים.

לחלופין, אפשר להשבית את עבודת ההעברה. במקרה כזה, העבודה תמשיך להופיע בדף Jobs (עבודות), ותוכלו להפעיל אותה מחדש או לשנות אותה.

‫CLI של gcloud

כדי למחוק עבודת העברה, משתמשים ב-gcloud transfer jobs delete.

gcloud transfer jobs delete JOB_NAME

מסוף Google Cloud

כדי למחוק עבודת העברה:

  1. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. מסמנים את התיבה לצד העברת העבודה שרוצים למחוק.

  3. לוחצים על מחיקת המשרה.

    מוצגת תיבת הדו-שיח Delete transfer job?‎ (האם למחוק את משימת ההעברה?).

  4. קוראים את ההודעה בתיבת הדו-שיח, מקלידים את השם שהוקצה אוטומטית למשרה בשדה ולוחצים על מחיקה כדי לאשר את מחיקת המשרה.

    המשרה תוסר מהדף משרות.

REST

כדי למחוק עבודת העברה באמצעות API בארכיטקטורת REST, אפשר לעיין בהפניה transferJobs.delete.

הצגת פרטי השגיאה

אם נתקלתם בשגיאות במהלך הפעלת העברה, תוכלו לראות את פרטי השגיאה כדי לנסות לפתור אותה.

כדי לראות את פרטי השגיאה של הרצת העברת נתונים:

  1. נכנסים לדף Storage Transfer Service במסוף Google Cloud .

    מעבר אל Storage Transfer Service

  2. לוחצים על התיאור של עבודת ההעברה. יוצג הדף Job details (פרטי המשימה).

  3. כדי להציג את פרטי המשימה, מבצעים אחת מהפעולות הבאות:

    • הפעלת העבודה האחרונה: לוחצים על הלחצן הצגת פרטי השגיאה או על הקישור עיון בפרטי השגיאה. יוצג הדף Error details.

    • היסטוריה של הפעלת משימות:

      1. לוחצים על זמן ההתחלה של הפעלת המשימה.

        יוצג הדף Run details (פרטי ההפעלה).

      2. לוחצים על הקישור הצגת פרטי השגיאה.

        הדף Error details מוצג.

  4. כדי להציג פרטים נוספים על כל שגיאה שמוצגת, לוחצים על הרחבה.

  5. כדי לסנן את השגיאות, מזינים את המאפיינים שרוצים לסנן בשדה Enter property name or value.

    כשמציבים את הסמן בשדה, מוצג תפריט נפתח עם אפשרויות רלוונטיות שיעזרו לכם ליצור את המסנן.