הגדרת ארגזי חול למשרות

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

בדף הזה מוסבר איך להגדיר ארגזי חול במאגר התגים. פרטים על כתיבת קוד לאינטראקציה עם ארגז החול באמצעות CLI מופיעים במאמר הרצת קוד ב-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. מתקינים ומפעילים את ה-CLI של gcloud.
  7. יוצרים משימה ב-Cloud Run.

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

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

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

הפעלת ארגזי חול

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

gcloud

כדי ליצור או לעדכן את העבודה, מציינים את הדגל --sandbox-launcher:

  • כדי ליצור משימה, מריצים את הפקודה הבאה:

    gcloud beta run jobs create JOB --image IMAGE_URL --sandbox-launcher

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

  • כדי לעדכן משימה קיימת, מריצים את הפקודה הבאה:

    gcloud beta run jobs update JOB --sandbox-launcher

YAML

  1. אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. מעדכנים את קובץ ה-YAML כך שיכלול את מאפיין sandboxLauncher עם הערך true בתוך הגדרות הקונטיינר:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
                sandboxLauncher: true
    

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

    • JOB: השם של המשימה ב-Cloud Run.
    • CONTAINER: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest
  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    gcloud run jobs replace job.yaml

    אם קיים קובץ job.yaml, הפקודה gcloud run jobs replace משתמשת בו כברירת מחדל.

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

השבתת ארגזי חול

כדי להשבית את האפשרות להפעיל ארגז חול בעבודה, משתמשים ב-Google Cloud CLI או בהגדרת YAML:

gcloud

כדי לעדכן את העבודה באמצעות הדגל --no-sandbox-launcher, מריצים את הפקודה הבאה:

gcloud beta run jobs update JOB --no-sandbox-launcher

מחליפים את JOB בשם של העבודה.

YAML

  1. אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. מעדכנים את קובץ ה-YAML כדי להסיר את המאפיין sandboxLauncher מתוך הגדרות המאגר:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
    

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

    • JOB: השם של המשימה ב-Cloud Run.
    • CONTAINER: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest
  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    gcloud run jobs replace job.yaml

    אם קיים קובץ job.yaml, הפקודה gcloud run jobs replace משתמשת בו כברירת מחדל.

הצגת הגדרות ארגז החול

כדי לראות את הגדרות הארגז הנוכחיות של משימת Cloud Run:

המסוף

  1. נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :

    כניסה לדף Cloud Run jobs

  2. לוחצים על המשרה כדי לפתוח את הדף פרטי המשרה.

  3. בכרטיסייה היסטוריה, לוחצים על המזהה של העבודה שהופעלה מהרשימה.

  4. בכרטיסייה Containers, מאתרים את ההגדרה Sandbox launcher כדי לראות אם ארגזי חול של מאגרי אפליקציות מופעלים או מושבתים.

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run jobs executions describe EXECUTION_NAME --format yaml

    מחליפים את EXECUTION_NAME בשם של הפעלת העבודה.

  2. כדי לוודא שהפעלתם את הארגזים המבודדים, מחפשים את המאפיין sandboxLauncher: true בהגדרות שמוחזרות.

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