יצירת תורי משימות ב-Cloud Tasks

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

שימו לב לנקודות הבאות:

  • שמות התורים מורכבים משלושה חלקים: מזהה פרויקט, מיקום ומזהה תור. צריך שיהיה לכם Google Cloud פרויקט עם מזהה פרויקט.

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

  • לא צריך אפליקציית App Engine כדי להשתמש במשימות HTTP Target. כשיוצרים את התור, בוחרים Google Cloud מיקום.

יצירת רשימת 'הבאים בתור'

אפשר ליצור תור בדרכים הבאות:

  • במסוף Google Cloud
  • באמצעות Google Cloud CLI בטרמינל או ב-Cloud Shell
  • על ידי שליחת בקשה ישירה ל-Cloud Tasks API

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Tasks > Queues.

    כניסה לדף Queues

  2. לוחצים על יצירת תור.

  3. מזינים שם תור – לדוגמה, my-queue.

  4. ברשימה Region, בוחרים מיקום נתמך שבו התור יפעל – לדוגמה, asia-south1.

    אם בארגון שלכם יש הגבלות על מיקום המשאבים ואתם רוצים ליצור את התור ב-us-central1 או ב-us-central2, מדיניות הארגון צריכה לאפשר יצירת תור גם ב-us-central1 וגם ב-us-central2 (גם אם אתם צריכים תור רק באחד מהאזורים האלה).

  5. אופציונלי, אפשר גם להגדיר את התור.

  6. לוחצים על יצירה.

gcloud

משתמשים בפקודה gcloud tasks queues create כדי ליצור את התור:

  gcloud tasks queues create QUEUE_ID \
      --location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • QUEUE_ID: המזהה שאתם מקצים לתור, לדוגמה: my-queue.

  • LOCATION: אזור נתמך שבו התור יפעל. לדוגמה, asia-south1.

    אם בארגון שלכם יש הגבלות על מיקום המשאבים ואתם רוצים ליצור את התור ב-us-central1 או ב-us-central2, מדיניות הארגון צריכה לאפשר יצירת תור גם ב-us-central1 וגם ב-us-central2 (גם אם אתם צריכים תור רק באחד מהאזורים האלה).

דגלים אחרים של פקודת ה-CLI של gcloud מאפשרים להגדיר מגבלות קצב, אפשרויות ניסיון חוזר, סוגי תורים ועוד.

‫API בארכיטקטורת REST

כדי ליצור תור, משתמשים ב-method‏ projects.locations.queues.create.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • LOCATION: אזור נתמך שבו התור יפעל. לדוגמה, asia-south1.

    אם בארגון שלכם יש הגבלות על מיקום המשאבים ואתם רוצים ליצור תור באזור us-central1 או us-central2, מדיניות הארגון צריכה לאפשר יצירת תור גם באזור us-central1 וגם באזור us-central2 (גם אם אתם צריכים תור רק באחד מהאזורים האלה).

  • QUEUE_ID: המזהה שהקציתם לתור. לדוגמה: my-queue.
מאפיינים נוספים שאפשר להגדיר עבור Queue המשאב כוללים מגבלות קצב, אפשרויות ניסיון חוזר, סוגי תורים ועוד.

תוכן בקשת JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של Queue:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
  "rateLimits": {
    "maxDispatchesPerSecond": 500,
    "maxBurstSize": 100,
    "maxConcurrentDispatches": 1000
  },
  "retryConfig": {
    "maxAttempts": 100,
    "minBackoff": "0.100s",
    "maxBackoff": "3600s",
    "maxDoublings": 16
  },
  "state": "RUNNING"
}

יכול להיות שיחלפו כמה דקות עד שהתור החדש שנוצר יהיה זמין.

תארו את התור

כדי לוודא שהתור נוצר בהצלחה, אפשר:

  • במסוף Google Cloud
  • שימוש ב-CLI של gcloud בטרמינל או ב-Cloud Shell
  • על ידי שליחת בקשה ישירה ל-Cloud Tasks API

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Tasks > Queues.

    כניסה לדף Queues

    סימן וי ירוק יציין שהתור פועל.

  2. כדי לראות פרטים נוספים, לוחצים על שם התור ואז על הכרטיסייה Configuration.

gcloud

כדי לוודא שהתור נוצר בהצלחה, משתמשים בפקודה gcloud tasks queues describe:

gcloud tasks queues describe QUEUE_ID \
    --location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • QUEUE_ID: מזהה התור (השם הקצר שלו)
  • LOCATION: המיקום של התור

הפלט אמור להיראות כך:

name: projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID
rateLimits:
  maxBurstSize: 100
  maxConcurrentDispatches: 1000
  maxDispatchesPerSecond: 500.0
retryConfig:
  maxAttempts: 100
  maxBackoff: 3600s
  maxDoublings: 16
  minBackoff: 0.100s
state: RUNNING

‫API בארכיטקטורת REST

כדי לאחזר תור, משתמשים בשיטה projects.locations.queues.get.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • LOCATION: האזור שבו התור נפרס, למשל us-central1.
  • QUEUE_ID: המזהה הקצר של התור. לדוגמה: my-queue.

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Queue:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
  "rateLimits": {
    "maxDispatchesPerSecond": 500,
    "maxBurstSize": 100,
    "maxConcurrentDispatches": 1000
  },
  "retryConfig": {
    "maxAttempts": 100,
    "minBackoff": "0.100s",
    "maxBackoff": "3600s",
    "maxDoublings": 16
  },
  "state": "RUNNING"
}

פתרון בעיות ביצירת רשימת 'הבאים בתור'

אם לא מופיע הפלט הצפוי, אפשר לנסות את הפעולות הבאות:

  • מחכים לפחות דקה עד שהתור יאותחל.
  • מוודאים שלא קיימת כבר רשימת המתנה עם אותו מזהה. כדי לראות את התורים בפרויקט, משתמשים בפקודה gcloud tasks queues list:

    gcloud tasks queues list \
        --location=LOCATION

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

  • בודקים אם הגעתם למכסת התור:

    1. במסוף Google Cloud , עוברים לדף API/Service Details של Cloud Tasks API.

      מעבר אל API/Service Details

    2. לוחצים על הכרטיסייה Quotas & System limits (מכסות ומגבלות מערכת).

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

      איך שולחים בקשה לשינוי המכסות

  • מריצים מחדש את הפקודות כדי ליצור את התור ומוודאים שכל שלב הושלם בצורה נכונה.

המאמרים הבאים