שינוי גודל מאגרי עובדים ב-Cloud Run באמצעות Workflows

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

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

ברשימה הבאה מפורטות הדרישות לשימוש ב-Workflows כדי לפרוס ולהפעיל תהליך עבודה של מאגרי עובדים ב-Cloud Run:

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מפעילים את Cloud Run Admin API ואת Workflows APIs.

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

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

    הפעלת ממשקי ה-API

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

כדי לקבל את ההרשאות שדרושות לפריסה ולהפעלה של מאגרי עובדים ב-Cloud Run באמצעות Workflows, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

כדי לאפשר ל-Workflows לעדכן את מאגר העובדים של Cloud Run, לחשבון השירות שמשמש לפריסת זרימת העבודה צריכה להיות ההרשאה הבאה:

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

יצירת מאגר עובדים של Cloud Run

יוצרים מאגר עובדים ב-Cloud Run אם עוד לא עשיתם זאת. תצטרכו להשתמש בשם של מאגר העובדים של Cloud Run כשמריצים את תהליך העבודה בהמשך.

יצירה, פריסה והפעלה של תהליך העבודה

תהליך העבודה הבא מעדכן את מספר המופעים של מאגר העובדים שלכם ב-Cloud Run.

  1. בספריית הבית, יוצרים קובץ YAML חדש בשביל תהליך העבודה, למשל update-cr-worker-pool.yaml, ומעתיקים את התוכן הבא לקובץ:

    main:
      params: [args]
      steps:
        - init:
            assign:
              - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
              - region: ${args.region}
              - workerPoolName: ${args.workerPool}
              - instanceCount: ${args.instanceCount}
              - workerPoolUrl: ${"https://run.googleapis.com/v2/projects/" + project + "/locations/" + region + "/workerPools/" + workerPoolName}
        - updateWorkerPool:
            call: http.patch
            args:
              url: ${workerPoolUrl}
              query:
                updateMask: "scaling.manualInstanceCount"
              auth:
                type: OAuth2
              body:
                scaling:
                  manualInstanceCount: ${int(instanceCount)}
            result: updateResult
        - returnOutput:
            return: ${updateResult.body}
    
  2. פורסים את תהליך העבודה ומשייכים אותו לחשבון שירות ספציפי:

    gcloud workflows deploy WORKFLOW_NAME \
        --source=WORKFLOW_NAME.yaml \
        --location=REGION \
        --service-account=SERVICE_ACCOUNT

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

    • WORKFLOW_NAME: השם של זרימת העבודה, למשל update-worker-pool. שם תהליך העבודה צריך להיות זהה לשם קובץ ה-YAML שיצרתם קודם.
    • REGION: האזור שבו מאגר העובדים של Cloud Run נפרס, לדוגמה europe-west1.
    • SERVICE_ACCOUNT: כתובת האימייל בחשבון השירות שקיבל את התפקידים הנדרשים, לדוגמה:
      • SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
      • PROJECT_NUMBER-compute@developer.gserviceaccount.com
  3. מריצים את תהליך העבודה עם הפרטים של מאגר העובדים ומספר המופעים:

    gcloud workflows execute WORKFLOW_NAME \
        --location=REGION \
        --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'

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

    • WORKFLOW_NAME: השם של תהליך העבודה.
    • REGION: האזור שבו מאגר העובדים של Cloud Run נפרס, לדוגמה europe-west1.
    • WORKER_POOL_NAME: השם של מאגר העובדים.
    • INSTANCE_COUNT: מספר המופעים ששונה במאגר העובדים, לדוגמה 3.

אימות העדכונים

אחרי שמריצים את תהליך העבודה, אפשר לראות את העדכונים במקומות הבאים במסוף Google Cloud :

  • כדי לראות את סטטוס הביצוע והתוצאות, עוברים לדף הפרטים של Workflows ובוחרים את זרימת העבודה:

    כניסה לדף Workflows

    מוודאים שהשדה manualInstanceCount השתנה בהרצה האחרונה של תהליך העבודה.

  • כדי לוודא שהעדכון בוצע בהצלחה ב-Cloud Run, עוברים לדף worker pools:

    כניסה ל-Cloud Run

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