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

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

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

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

  1. 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

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

  3. מתקינים ומפעילים את ה-CLI של gcloud.
  4. פורסים שירות של Cloud Run בסביבת הביצוע של הדור השני.

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

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

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

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

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

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

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

gcloud

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

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

    gcloud beta run deploy SERVICE --image IMAGE_URL --sandbox-launcher

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

    • SERVICE: השם של שירות Cloud Run.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • כדי לעדכן שירות קיים, מריצים את הפקודה הבאה:

    gcloud beta run services update SERVICE --sandbox-launcher

YAML

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

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

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
            sandboxLauncher: true
            port: 8080
    

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

    • SERVICE: השם של שירות Cloud Run.
    • CONTAINER: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  3. יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

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

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

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

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

gcloud

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

gcloud beta run services update SERVICE --no-sandbox-launcher

מחליפים את SERVICE בשם השירות.

YAML

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

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

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
            port: 8080
    

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

    • SERVICE: השם של שירות Cloud Run.
    • CONTAINER: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  3. יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

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

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

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

המסוף

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

    כניסה ל-Cloud Run

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

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

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

gcloud

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

    gcloud beta run services describe SERVICE

    מחליפים את SERVICE בשם השירות.

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

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