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

בדף הזה מוסבר איך להגדיר משתני סביבה למאגר העובדים של 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. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Container(s), Volumes, Networking, Security כדי להרחיב את דף ההגדרות של מאגרי העובדים.

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

    תמונה

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

gcloud

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

gcloud beta 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 beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. בדוגמה הבאה מופיעה הגדרת ה-YAML:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    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 beta run worker-pools replace workerpool.yaml

Terraform

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

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

  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. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Container(s), Volumes, Networking, Security כדי להרחיב את דף ההגדרות של מאגרי העובדים.

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

    תמונה

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

gcloud

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

gcloud beta 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. לוחצים על Container(s), Volumes, Networking, Security כדי להרחיב את דף ההגדרות של מאגרי העובדים.

  4. לוחצים על הכרטיסייה משתנים וסודות.

    תמונה

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

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

gcloud

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

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

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

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

YAML

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

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

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

    gcloud beta run worker-pools replace workerpool.yaml

Terraform

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

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

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

המסוף

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

    כניסה ל-Cloud Run

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

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

  4. לוחצים על הכרטיסייה משתנים וסודות.

    תמונה

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

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

gcloud

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

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

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

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

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

gcloud beta 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 בנושאים הבאים: