שימוש בפעולות ארוכות טווח ב-Cloud Storage

בדף הזה מוסבר איך להשתמש בפעולות ממושכות שמופעלות באמצעות הפעלות method ב-Cloud Storage. למידע מפורט על הסמנטיקה של פעולה ממושכת שמוחזרת מהפעלת method ספציפית, קראו את המאמרים הספציפיים לתכונה.

קבלת התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לניהול פעולות ארוכות ב-Cloud Storage, בקשו מהאדמין להקצות לכם את התפקיד "אדמין של אחסון" (roles/storage.admin) או את התפקיד "בעלים של קטגוריה מדור קודם באחסון" (roles/storage.legacyBucketOwner) בקטגוריה או בפרויקט שבהם מתבצעת הפעולה הבסיסית.

התפקידים המוגדרים מראש האלה כוללים את ההרשאות הבאות, שנדרשות כדי לנהל פעולות ארוכות ב-Cloud Storage:

  • storage.bucketOperations.cancel
  • storage.bucketOperations.get
  • storage.bucketOperations.list
  • ‫storage.buckets.list (ההרשאה הזו נדרשת רק כשמשתמשים במסוף Cloud de Confiance )

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

קבלת הפרטים של פעולה ממושכת

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה הממושכת.

  3. לוחצים על הכרטיסייה Operations.

שורת הפקודה

כדי לקבל את הפרטים או לבדוק את הסטטוס של פעולה ממושכת, משתמשים בפקודה gcloud storage operations describe:

gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

מחליפים את:

  • ‫BUCKET_NAME בשם הקטגוריה שמכילה את הפעולה הממושכת. לדוגמה, my-bucket.

  • ‫OPERATION_ID במזהה של הפעולה הממושכת, שמוחזר בתגובה של השיטות שאתם מפעילים. לדוגמה, התגובה הבאה מוחזרת מקריאה ל-gcloud storage restore ומזהה הפעולה הממושכת הוא BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

    Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

ממשקי API בארכיטקטורת REST

‫API בפורמט JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת operations.get:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID"

    מחליפים את:

    • ‫BUCKET_NAME בשם הקטגוריה שמשויכת לפעולה הממושכת.

    • ‫OPERATION_ID במזהה של הפעולה הממושכת, שמוחזר בתגובה לשיטות שאתם מפעילים. לדוגמה, התגובה הבאה מוחזרת מקריאה ל-gcloud storage restore ומזהה הפעולה הממושכת הוא BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

      Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

אם הבקשה מצליחה, מוחזר משאב operations:

{
  "kind": "storage#operation",
  "name": "projects/_/buckets/bucket/operations/operation_id",
  "metadata": {
    "@type": OperationMetadataType*,
    metadata OperationMetadata*
  },
  "done": boolean,
  "response": {
    "@type": ResponseResourceType*,
    response ResponseResource*
  }
}

הצגת רשימה של הפעולות הממושכות בקטגוריה

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה.

  3. לוחצים על הכרטיסייה פעולות.

שורת הפקודה

כדי להציג את רשימת הפעולות הארוכות בקטגוריה, משתמשים בפקודה gcloud storage operations list:

gcloud storage operations list gs://BUCKET_NAME

מחליפים את:

  • ‫BUCKET_NAME בשם הקטגוריה שמכילה את הפעולות הממושכות. לדוגמה, my-bucket.

ממשקי API בארכיטקטורת REST

‫API בפורמט JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת operations.get:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/operations"

    מחליפים את:

    • ‫BUCKET_NAME בשם הקטגוריה שמשויכת לפעולות הממושכות שרוצים להציג ברשימה.

אם הבקשה מצליחה, מתקבלת תשובה דומה לזו:

{
  "kind": "storage#operations",
  "nextPageToken": string,
  "operations": [
    operations Resource
  ]
}

ביטול של פעולה ממושכת

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה שרוצים לבטל.

  3. לוחצים על הכרטיסייה פעולות.

  4. בשורה של הפעולה הממושכת, לוחצים על More options ואז על Cancel.

שורת הפקודה

כדי לבטל פעולה שנמשכת זמן רב, משתמשים בפקודה gcloud storage operations cancel:

gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

מחליפים את:

  • ‫BUCKET_NAME בשם הקטגוריה שמכילה את הפעולה הממושכת. לדוגמה, my-bucket.

  • ‫OPERATION_ID במזהה של הפעולה הממושכת, שמוחזר בתגובה של השיטות שאתם מפעילים. לדוגמה, התגובה הבאה מוחזרת מקריאה ל-gcloud storage restore ומזהה הפעולה הממושכת הוא BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

    Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

ממשקי API בארכיטקטורת REST

‫API בפורמט JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת operations.post:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID/cancel"

    מחליפים את:

    • ‫BUCKET_NAME בשם הקטגוריה שמשויכת לפעולה הממושכת שרוצים לבטל.

    • ‫OPERATION_ID במזהה של הפעולה הממושכת, שמוחזר בתגובה לשיטות שאתם מפעילים. לדוגמה, התגובה הבאה מוחזרת מקריאה ל-gcloud storage restore ומזהה הפעולה הממושכת הוא BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

      Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

מטא-נתונים

לפעולות ארוכות-טווח יש מטא-נתונים שמשויכים אליהן. המטא-נתונים הבאים מזהים מאפיינים של פעולה ממושכת:

  • זמן היצירה: הזמן שבו נוצרה הפעולה הממושכת.

  • שעת סיום: השעה שבה הסתיימה הפעולה הממושכת.

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

  • סוג: הקריאה ל-API שהפעילה את הפעולה הממושכת.

  • בקשת ביטול: מציינת אם המשתמש ביקש לבטל את הפעולה שנמשכת זמן רב.

  • Progress percent: ההתקדמות המשוערת של הפעולה הממושכת, באחוזים. הערך -1 מציין שההתקדמות לא ידועה.

במסוף Cloud de Confiance , אחוז ההתקדמות והמטא-נתונים של בקשת הביטול מוצגים בשדה המשולב Status.

טיפול בשגיאות

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

לדוגמה, אם תשלחו בקשה לשחזור בכמות גדולה של פריטים שנמחקו באופן זמני, יוחזר קוד סטטוס של HTTP של הצלחה (200 OK) גם אם תתרחש שגיאה במהלך הפעולה. כדי לבדוק אם פעולת השחזור בכמות גדולה הצליחה, בודקים את הסטטוס של הפעולה הממושכת.

שימו לב שממשקי ה-API של הפעולות הממושכות (Get, ‏ List, ‏ Cancel) הם סינכרוניים ומחזירים שגיאות רגילות.