תזמון והרצה של משימת cron באמצעות ה-CLI של gcloud

במדריך למתחילים הזה מוסבר איך להשתמש ב-CLI של gcloud כדי לבצע כמה פעולות בסיסיות באמצעות Cloud Scheduler.

במדריך למתחילים הזה:

  1. יוצרים נושא Pub/Sub כדי להגדיר אותו כיעד של משימה ב-Cloud Scheduler.
  2. יוצרים משימת cron באמצעות Cloud Scheduler ומגדירים לוח זמנים חוזר למשימה.
  3. מריצים את העבודה.
  4. מוודאים שהעבודה בוצעה בהצלחה.

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

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

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

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

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

  7. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  8. מפעילים את ממשקי ה-API של Cloud Scheduler ו-Pub/Sub:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. התקינו את ה-CLI של Google Cloud.

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

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  12. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

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

  14. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  15. מפעילים את ממשקי ה-API של Cloud Scheduler ו-Pub/Sub:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

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

כדי לקבל את ההרשאות שדרושות לביצוע ההפעלה המהירה הזו, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

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

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

יצירת נושא ומינוי ב-Pub/Sub

נושא Pub/Sub הוא משאב שאפליקציות לשליחת הודעות יכולות לשלוח אליו הודעות. כדי לקבל הודעות שפורסמו בנושא מסוים, צריך ליצור מינוי לנושא הזה.

  1. מגדירים נושא Pub/Sub לשימוש כיעד למשימת ה-cron:

    gcloud pubsub topics create cron-topic
    

    כך יוצרים נושא בשם cron-topic.

  2. כדי לקבל הודעות ולראות את התוצאות של העבודה, צריך ליצור מינוי ל-Pub/Sub:

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

יצירת משימת cron באמצעות Cloud Scheduler

משתמשים בפקודה gcloud scheduler jobs create pubsub כדי להגדיר יחידת עבודה שנקראת משימת cron, שנשלחת ליעד Pub/Sub בלוח זמנים חוזר. לוח הזמנים מוגדר באמצעות פורמט שמבוסס על unix-cron. מידע נוסף זמין במאמר בנושא פורמט של משימת Cron ואזור זמן.

gcloud scheduler jobs create pubsub my-cron-job \
    --schedule="30 16 * * 7" \
    --topic=cron-topic \
    --location="us-east1" \
    --message-body="Hello world"

יצרתם עבודה ששולחת את ההודעה 'Hello world' לנושא Pub/Sub בשעה 16:30 בימי ראשון.

עכשיו אפשר להריץ את העבודה.

הרצת המשימה

בנוסף להרצה לפי לוח הזמנים שצוין, אפשר להריץ את העבודה באופן מיידי:

gcloud scheduler jobs run my-cron-job --location="us-east1"

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

אחר כך, תוכלו לוודא שההודעה התקבלה בנושא ה-Pub/Sub.

אימות התוצאות ב-Pub/Sub

מוודאים שהנושא ב-Pub/Sub מקבל הודעות מהעבודה.

  1. שליפת הודעות Pub/Sub ממינוי:

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

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

  2. צפייה בתוצאות של הרצת העבודה. הפלט אמור להיראות כך:

    DATA: Hello world!
    MESSAGE_ID: 5028933846601543
    ORDERING_KEY:
    ATTRIBUTES:
    DELIVERY_ATTEMPT:
    ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
    

הסרת המשאבים

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

    כדי למחוק Google Cloud פרויקט:

    gcloud projects delete PROJECT_ID

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

  1. מוחקים את משימת ה-cron. ב-Cloud Shell או במכונה שבה התקנתם את ה-CLI של gcloud, מריצים את הפקודה:

    gcloud scheduler jobs delete MY_JOB \
        --location="LOCATION"
    

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

    • MY_JOB: השם של המשימה שרוצים למחוק.
    • LOCATION: מיקום העבודה. כברירת מחדל, המערכת משתמשת במיקום של אפליקציית App Engine של הפרויקט הנוכחי, אם יש אפליקציה משויכת.
  2. מוחקים את נושא ה-Pub/Sub. ב-Cloud Shell או במחשב שבו התקנתם את ה-CLI של gcloud, מריצים את הפקודה:

    gcloud pubsub topics delete TOPIC_ID
    

    מחליפים את TOPIC_ID במזהה של נושא Pub/Sub שרוצים למחוק.

  3. מוחקים את המינוי ל-Pub/Sub. ב-Cloud Shell או במכונה שבה התקנתם את ה-CLI של gcloud, מריצים את הפקודה:

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    

    מחליפים את SUBSCRIPTION_ID במזהה של מינוי Pub/Sub שרוצים למחוק.

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