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

בדף הזה מוסבר איך להגדיר משתני סביבה למאגר העובדים של Cloud Run.

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

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

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

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

הגדרה של משתני סביבה

אפשר להגדיר משתני סביבה למאגר עובדים ב-Cloud Run באמצעות מסוףGoogle Cloud , Google Cloud CLI,‏ YAML או Terraform:

המסוף

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

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות מאגרי עובדים ולוחצים על פריסת קונטיינר כדי להגדיר מאגר עובדים חדש. אם אתם מגדירים מאגר עובדים קיים, לוחצים על מאגר העובדים ואז על Edit and deploy new revision (עריכה ופריסה של עדכון חדש).

  3. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Containers, Networking, Security (מאגרי קונטיינרים, רשתות, אבטחה) כדי להרחיב את דף ההגדרות של מאגרי העובדים.

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

    תמונה

    • בכרטיסייה Variables & Secrets (משתנים וסודות), לוחצים על Add Variable (הוספת משתנה) כדי להוסיף משתנה סביבה חדש, ואז מציינים את השם שרוצים לתת למשתנה בשדות Name (שם) ו-Value (ערך). מידע נוסף על הגדרת כמה משתני סביבה או על שימוש בתווי escape לתווים מיוחדים זמין במאמר הגדרת כמה משתני סביבה.
  5. לוחצים על יצירה או על פריסה.

gcloud

כדי לציין משתני סביבה בזמן פריסת מאגר העובדים, משתמשים בדגל --set-env-vars:

gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2

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

  • WORKER_POOL: שם מאגר העובדים
  • KEY1=VALUE1,KEY2=VALUE2: רשימה מופרדת בפסיקים של שמות משתנים וערכים
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest

מידע נוסף על הגדרת כמה משתני סביבה או על שימוש בתווי escape לתווים מיוחדים זמין במאמר הגדרת כמה משתני סביבה.

YAML

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

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. בדוגמה הבאה מופיעה הגדרת ה-YAML:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - name:
            image: IMAGE_URL
            env:
            - name: NAME
              value: VALUE
            - name: NAME2
              value: VALUE2

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

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

    gcloud run worker-pools replace worker-pool.yaml

    אם קיים קובץ worker-pool.yaml, הפקודה gcloud run worker-pools replace משתמשת בו כברירת מחדל.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
      env {
        name  = "KEY1"
        value = "VALUE1"
      }
      env {
        name  = "KEY2"
        value = "VALUE2"
      }
    }
  }
}

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

  • WORKER_POOL: השם של מאגר העובדים.
  • REGION: Google Cloud האזור. לדוגמה: europe-west1
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • KEY1 ו-VALUE1: משתנה הסביבה והערך. אפשר להוסיף עוד משתנים וערכים לפי הצורך.

הגדרת משתני סביבה כברירת מחדל במאגר

אפשר להשתמש בהצהרה ENV בקובץ Dockerfile כדי להגדיר ערכי ברירת מחדל למשתני סביבה:

ENV KEY1=VALUE1,KEY2=VALUE2

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

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

הגדרה של כמה משתני סביבה

אפשר להגדיר כמה משתני סביבה באמצעות הקובץ .env או הדגל --set-env-vars.

הגדרת כמה משתני סביבה באמצעות הקובץ .env

המסוף

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

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות מאגרי עובדים ולוחצים על פריסת קונטיינר כדי להגדיר מאגר עובדים חדש. אם אתם מגדירים מאגר עובדים קיים, לוחצים על מאגר העובדים ואז על Edit and deploy new revision (עריכה ופריסה של עדכון חדש).

  3. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Containers, Networking, Security (מאגרי קונטיינרים, רשתות, אבטחה) כדי להרחיב את דף ההגדרות של מאגרי העובדים.

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

    תמונה

    • בכרטיסייה Variables & Secrets (משתנים וסודות), לוחצים על Add Variable (הוספת משתנה) ומדביקים את התוכן של קובץ .env בשדה Name (שם). ‫Cloud Run מאכלס באופן אוטומטי את השדה Value ויוצר משתנים חדשים לכל צמד מפתח/ערך שמוגדר בקובץ .env.
  5. לוחצים על יצירה או על פריסה.

gcloud

כדי לציין כמה משתני סביבה מקובץ .env, מריצים את הפקודה הבאה:

gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL --env-vars-file=ENV_FILE_PATH

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

  • WORKER_POOL: השם של מאגר העובדים.
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • ENV_FILE_PATH: הנתיב לקובץ .env.

הגדרת כמה משתני סביבה באמצעות הדגל --set-env-vars

אם יש לכם כמה משתני סביבה שלא ניתן לפרט בפורמט KEY1=VALUE1,KEY2=VALUE2, אפשר לחזור על הדגל --set-env-vars כמה פעמים:
   [...]
   --set-env-vars "KEY1=VALUE1" \
   --set-env-vars "KEY2=VALUE2" \
   --set-env-vars "KEY3=VALUE3"

תו בריחה (escape) לתווים של פסיקים

הפסיק , משמש להפרדה בין משתני סביבה. לכן, אם משתנה הסביבה שלכם מכיל פסיקים כערכים, צריך להשתמש בתו בריחה כדי להגדיר תו מפריד אחר, למשל @:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

עדכון משתני סביבה

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

אפשר לעדכן את משתני הסביבה ב Google Cloud מסוף, ב-Google Cloud CLI, ב-YAML או ב-Terraform:

המסוף

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

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות Worker pools (מאגרי עובדים), לוחצים על מאגר העובדים שרוצים לעדכן ואז על Edit and deploy new revision (עריכה ופריסה של גרסה חדשה).

  3. לוחצים על Containers, Networking, Security (מאגרי עובדים, רשת, אבטחה) כדי להרחיב את דף ההגדרות של מאגרי העובדים.

  4. לוחצים על הכרטיסייה Variables & Secrets (משתנים וסודות).

    תמונה

  5. מאתרים את משתנה הסביבה שרוצים לעדכן, ואז מציינים שם אחר למשתנה או ערך אחר בשדות Name (שם) ו-Value (ערך).

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

gcloud

כדי לעדכן משתני סביבה של מאגר עובדים קיים, משתמשים בדגל --update-env-vars:

gcloud run worker-pools update WORKER_POOL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

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

  • WORKER_POOL: שם מאגר העובדים
  • KEY1=VALUE1,KEY2=VALUE2: רשימה מופרדת בפסיקים של שמות משתנים וערכים

YAML

  1. מורידים את הגדרת ה-YAML של מאגר העובדים:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. עורכים את משתני השם והערך.

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

    gcloud run worker-pools replace worker-pool.yaml

Terraform

כדי לעדכן משתני סביבה של מאגר עובדים קיים, פותחים את הקובץ main.tf שמתאים למאגר העובדים ועורכים את משתני השם והערך. אחר כך מריצים את הפקודה כדי להחיל את הגדרות Terraform.

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

מחיקת משתני סביבה

המסוף

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

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות Worker pools (מאגרי עובדים), לוחצים על מאגר העובדים שרוצים לעדכן ואז על Edit and deploy new revision (עריכה ופריסה של גרסה חדשה).

  3. לוחצים על Containers, Networking, Security (מאגרי עובדים, רשת, אבטחה) כדי להרחיב את דף ההגדרות של מאגרי העובדים.

  4. לוחצים על הכרטיסייה Variables & Secrets (משתנים וסודות).

    תמונה

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

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

gcloud

כדי להסיר משתני סביבה באופן סלקטיבי ממאגר עובדים קיים, משתמשים בדגל --remove-env-vars:

gcloud run worker-pools update WORKER_POOL --remove-env-vars KEY1,KEY2

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

  • WORKER_POOL: שם מאגר העובדים
  • KEY1,KEY2: רשימה מופרדת בפסיקים של שמות משתנים

אפשר גם למחוק את כל משתני הסביבה שהוגדרו קודם באמצעות הדגל --clear-env-vars:

gcloud run worker-pools update WORKER_POOL --clear-env-vars

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

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

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

    כניסה ל-Cloud Run

  2. לוחצים על Worker pools כדי להציג את רשימת מאגרי העובדים שנפרסו.

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

  4. לוחצים על הכרטיסייה Containers כדי להציג את ההגדרה של מאגר העובדים.

קוד לדוגמה

דוגמת קוד שמראה איך לגשת למשתני סביבה בקוד מופיעה במאמר טיפול בהגדרות רגישות באמצעות Secret Manager במדריך בנושא אימות משתמשי קצה.

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

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