בדף הזה מוסבר איך ליצור מכונת עבודה של Gemini Enterprise Agent Platform על סמך קונטיינר בהתאמה אישית.
סקירה כללית
מופעים של Agent Platform Workbench תומכים בשימוש בקונטיינר מותאם אישית שנגזר מאחד מקונטיינרי הבסיס שסופקו על ידי Google. אתם יכולים לשנות את קונטיינרי הבסיס האלה כדי ליצור קובץ אימג' של קונטיינר מותאם אישית, ולהשתמש בקונטיינרים המותאמים אישית האלה כדי ליצור מופע של Agent Platform Workbench.
קונטיינרים בסיסיים מוגדרים עם מערכת הפעלה שעברה אופטימיזציה לקונטיינרים במכונה הווירטואלית (VM) של המארח. תמונת המארח מבוססת על cos-stable
משפחת התמונות.
מגבלות
כשמתכננים את הפרויקט, חשוב לקחת בחשבון את המגבלות הבאות:
מאגר התגים המותאם אישית צריך להיות נגזר ממאגר בסיסי שסופק על ידי Google. שימוש בקונטיינר שלא נגזר מקונטיינר בסיסי מגדיל את הסיכון לבעיות תאימות ומגביל את היכולת שלנו לתמוך בשימוש שלכם במופעים של Agent Platform Workbench.
אי אפשר להשתמש ביותר מקונטיינר אחד עם מופע של Agent Platform Workbench.
המכונה הווירטואלית שמארחת את מאגר התגים המותאם אישית פועלת על מערכת הפעלה שמותאמת לקונטיינרים, שמגבילה את האופן שבו אפשר ליצור אינטראקציה עם המכונה המארחת. לדוגמה, מערכת הפעלה שמותאמת לקונטיינרים לא כוללת מנהל חבילות. כלומר, פעולות על חבילות במארח חייבות להתבצע במאגר עם נקודות הרכבה.
במקרים של Agent Platform Workbench, נעשה שימוש ב-
nerdctl(ממשק CLI של containerd) להרצת הקונטיינר המותאם אישית. הדבר נדרש כדי להבטיח תאימות לשירות סטרימינג התמונות. כל פרמטר של מאגר תגים שמוסיפים באמצעות ערך של מטא-נתונים צריך להיות תואם למה שנתמך על ידיnerdctl.מופעים של Agent Platform Workbench מוגדרים לשליפה מ-Artifact Registry או ממאגר קונטיינרים ציבורי. כדי להגדיר מכונה כך שתמשוך נתונים ממאגר פרטי, צריך להגדיר ידנית את פרטי הכניסה שמשמשים את containerd.
מאגרי בסיס
ב-Agent Platform Workbench יש קובצי אימג' בסיסיים של קונטיינרים שנוצרו על ידי Google בשני סוגים: רגיל ודק. כל וריאציה כוללת Python 3.10 (ברירת המחדל)
או Python 3.12. כשכותבים את הצהרת FROM של קובץ ה-Docker הנגזר, צריך להשתמש ב-URI שמתאים לגרסת Python הרצויה.
מאגר בסיסי רגיל
קונטיינר הבסיס הרגיל תומך בכל התכונות של Agent Platform Workbench וכולל את התכונות הבאות:
- חבילות של מדעי הנתונים שהותקנו מראש.
- Cuda libraries דומה ל-Deep Learning Containers.
- Google Cloud שילובים של JupyterLab כמו Managed Service for Apache Spark ושילובים של BigQuery.
- חבילות מערכת נפוצות כמו
curlאוgit. - הגדרה של JupyterLab שמבוססת על מטא-נתונים.
- ניהול ליבות שמבוסס על Micromamba.
מפרטים
מאגר הבסיס הרגיל כולל את המפרטים הבאים:
- תמונת הבסיס:
nvidia/cuda:12.6.1-cudnn-devel-ubuntu24.04 - גודל התמונה: כ-22 GB
- URI (Python 3.10, ברירת מחדל):
us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest - URI (Python 3.12):
us-docker.pkg.dev/workbench-images/gcr.io/workbench-container-2606:latest
מאגר בסיס דק
קובץ הבסיס הדק מספק קבוצה מינימלית של הגדרות שמאפשרות חיבור פרוקסי למופע. התכונות והחבילות של Standard Agent Platform Workbench לא כלולות, למעט התכונות הבאות:
- JupyterLab
- הגדרה של JupyterLab על סמך מטא-נתונים
- ניהול ליבות שמבוסס על Micromamba
חבילות נוספות או תוספים ל-JupyterLab צריכים להיות מותקנים ומנוהלים בנפרד.
מפרטים
המאפיינים של קובץ הבסיס הדק של מאגר התמונות:
- תמונת הבסיס:
marketplace.gcr.io/google/ubuntu24.04 - גודל התמונה: בערך 2 GB
- URI (Python 3.10, ברירת מחדל):
us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container-slim:latest - URI (Python 3.12):
us-docker.pkg.dev/workbench-images/gcr.io/workbench-container-slim-2606:latest
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Notebooks API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Notebooks API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת מופע של Agent Platform Workbench עם קונטיינר בהתאמה אישית, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Notebooks Runner (
roles/notebooks.runner) בחשבון המשתמש -
כדי לשלוף תמונות ממאגר Artifact Registry:
קורא של Artifact Registry (
roles/artifactregistry.reader) בחשבון השירות
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת קונטיינר בהתאמה אישית
כדי ליצור קונטיינר בהתאמה אישית לשימוש עם מופעים של Agent Platform Workbench:
ליצור קונטיינר נגזר שמבוסס על קובץ בסיס של קונטיינר שסופק על ידי Google.
יוצרים את הקונטיינר ומעבירים אותו בדחיפה ל-Artifact Registry. תצטרכו להשתמש ב-URI של הקונטיינר כשתיצרו את מופע Agent Platform Workbench. לדוגמה, ה-URI יכול להיראות כך:
gcr.io/PROJECT_ID/IMAGE_NAME.
יצירת המופע
אפשר ליצור מכונת Agent Platform Workbench על סמך קונטיינר בהתאמה אישית באמצעות מסוף Google Cloud או Google Cloud CLI.
המסוף
כדי ליצור מופע של Agent Platform Workbench על סמך קונטיינר בהתאמה אישית:
נכנסים לדף Instances במסוף Google Cloud .
לוחצים על יצירת פריט חדש.
בתיבת הדו-שיח New instance, לוחצים על Advanced options.
בתיבת הדו-שיח Create instance, בקטע Environment, בוחרים באפשרות Use custom container.
עבור Docker container image (קובץ אימג' של קונטיינר Docker), לוחצים על Select (בחירה).
בתיבת הדו-שיח Select container image (בחירת קובץ אימג' של קונטיינר), עוברים לקובץ אימג' של הקונטיינר שרוצים להשתמש בו ולוחצים על Select (בחירה).
זה שינוי אופציונלי. בשדה Post-startup script (סקריפט לטעינה אחרי ההפעלה), מזינים את הנתיב לסקריפט לטעינה אחרי ההפעלה שבו רוצים להשתמש.
זה שינוי אופציונלי. מוסיפים מטא-נתונים למופע. מידע נוסף זמין במאמר בנושא מטא-נתונים של מאגרי תגים בהתאמה אישית.
זה שינוי אופציונלי. בקטע 'רשת', מתאימים אישית את הגדרות הרשת. מידע נוסף זמין במאמר אפשרויות להגדרת הרשת.
משלימים את שאר השדות בתיבת הדו-שיח ליצירת מכונה, ואז לוחצים על יצירה.
הכלי Agent Platform Workbench יוצר מופע ומתחיל אותו באופן אוטומטי. כשהמופע מוכן לשימוש, ב-Agent Platform Workbench מופעל קישור Open JupyterLab.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
INSTANCE_NAME: השם של מופע Agent Platform Workbench. השם צריך להתחיל באות, ואחריה יכולים להיות עד 62 אותיות קטנות, מספרים או מקפים (-). השם לא יכול להסתיים במקף. -
PROJECT_ID: מזהה הפרויקט -
LOCATION: האזור שבו רוצים למקם את המכונה -
CUSTOM_CONTAINER_PATH: הנתיב למאגר של קובץ אימג' של קונטיינר, לדוגמה:gcr.io/PROJECT_ID/IMAGE_NAME -
METADATA: מטא-נתונים מותאמים אישית להחלה על המופע הזה. לדוגמה, כדי לציין סקריפט להפעלה אחרי האתחול, אפשר להשתמש בתג המטא-נתוניםpost-startup-scriptבפורמט הבא:"--metadata=post-startup-script=gs://BUCKET_NAME/hello.sh"
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud workbench instances create INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --container-repository=CUSTOM_CONTAINER_URL \ --container-tag=latest \ --metadata=METADATA
Windows (PowerShell)
gcloud workbench instances create INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION ` --container-repository=CUSTOM_CONTAINER_URL ` --container-tag=latest ` --metadata=METADATA
Windows (cmd.exe)
gcloud workbench instances create INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION ^ --container-repository=CUSTOM_CONTAINER_URL ^ --container-tag=latest ^ --metadata=METADATA
מידע נוסף על הפקודה ליצירת מופע משורת הפקודה זמין במסמכי התיעוד של ה-CLI של gcloud.
הכלי Agent Platform Workbench יוצר מופע ומתחיל אותו באופן אוטומטי. כשהמופע מוכן לשימוש, קישור Open JupyterLab מופעל ב Google Cloud מסוף Agent Platform Workbench.
אפשרויות להגדרת הרשת
בנוסף לאפשרויות הרשת הכלליות, למופע של Agent Platform Workbench עם קונטיינר בהתאמה אישית צריכה להיות גישה לשירות Artifact Registry.
אם השבתתם את הגישה לכתובת IP ציבורית עבור ה-VPC, אתם צריכים לוודא שהפעלתם גישה פרטית ל-Google.
הפעלת סטרימינג של תמונות
המארח של הקונטיינר המותאם אישית מוקצה כדי ליצור אינטראקציה עם סטרימינג של תמונות ב-Google Kubernetes Engine (GKE). כך מתבצעת משיכה מהירה יותר של קונטיינרים וזמן האתחול של קונטיינרים גדולים מתקצר אחרי שהם נשמרים במטמון במערכת הקבצים המרוחקת של GKE.
כדי לראות את הדרישות להפעלת סטרימינג של תמונות, אפשר לעיין במאמר בנושא דרישות. לרוב, אפשר להשתמש בסטרימינג של תמונות עם מופעים של Agent Platform Workbench על ידי הפעלת Container File System API.
הפעלת Container File System API
איך המכונה הווירטואלית המארחת מפעילה את מאגר הנתונים המותאם אישית
במקום להשתמש ב-Docker כדי להריץ את הקונטיינר המותאם אישית, מכונת ה-VM המארחת משתמשת ב-nerdctl במרחב השמות של Kubernetes כדי לטעון ולהריץ את הקונטיינר. כך, Agent Platform Workbench יכול להשתמש בהזרמת תמונות לקונטיינרים מותאמים אישית.
# Runs the custom container. sudo /var/lib/google/nerdctl/nerdctl --snapshotter=gcfs -n k8s.io run --name payload-container
דוגמה להתקנה: קובץ מותאם אישית עם ליבת ברירת מחדל מותאמת אישית
בדוגמה הבאה אפשר לראות איך ליצור ליבה חדשה עם חבילת pip שהותקנה מראש.
יצירת קונטיינר חדש בהתאמה אישית:
FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest ENV MAMBA_ROOT_PREFIX=/opt/micromamba RUN micromamba create -n ENVIRONMENT_NAME -c conda-forge python=PYTHON_VERSION -y SHELL ["micromamba", "run", "-n", "ENVIRONMENT_NAME", "/bin/bash", "-c"] RUN micromamba install -c conda-forge pip -y RUN pip install PACKAGE RUN pip install ipykernel RUN python -m ipykernel install --prefix /opt/micromamba/envs/ENVIRONMENT_NAME --name ENVIRONMENT_NAME --display-name KERNEL_NAME # Creation of a micromamba kernel automatically creates a python3 kernel # that must be removed if it's in conflict with the new kernel. RUN rm -rf "/opt/micromamba/envs/ENVIRONMENT_NAME/share/jupyter/kernels/python3"
מוסיפים את מאגר התגים החדש ל-Artifact Registry:
gcloud auth configure-docker REGION-docker.pkg.dev docker build -t REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME . docker push REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:latest
יוצרים מופע:
gcloud workbench instances create INSTANCE_NAME \ --project=PROJECT_ID \ --location=ZONE \ --container-repository=REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME \ --container-tag=latest
ליבות מתמשכות למאגרי תגים בהתאמה אישית
קונטיינרים מותאמים אישית ב-Agent Platform Workbench יכולים לטעון דיסק נתונים רק לספרייה /home/USER בכל קונטיינר, כאשר jupyter הוא המשתמש שמוגדר כברירת מחדל. כלומר, כל שינוי מחוץ ל-/home/USER הוא זמני ולא יישמר אחרי הפעלה מחדש. אם אתם רוצים שהחבילות שהתקנתם יישמרו עבור ליבת מערכת הפעלה ספציפית, אתם יכולים ליצור ליבה בספרייה /home/USER.
כדי ליצור ליבה בספרייה /home/USER:
יוצרים סביבת micromamba:
micromamba create -p /home/USER/ENVIRONMENT_NAME -c conda-forge python=3.11 -y micromamba activate /home/USER/ENVIRONMENT_NAME pip install ipykernel pip install -r ~/requirement.txt python -m ipykernel install --prefix "/home/USER/ENVIRONMENT_NAME" --display-name "Example Kernel"
מחליפים את מה שכתוב בשדות הבאים:
- USER: שם ספריית המשתמש, שברירת המחדל שלו היא
jupyter - ENVIRONMENT_NAME: שם הסביבה
- PYTHON_VERSION: גרסת Python, לדוגמה
3.11
- USER: שם ספריית המשתמש, שברירת המחדל שלו היא
ממתינים 30 שניות עד דקה עד שהקרנלים יתרעננו.
עדכון ההפעלה של מאגר הבסיס
קונטיינר הבסיס של מכונת Agent Platform Workbench (us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest) מפעיל את JupyterLab על ידי הרצת /run_jupyter.sh.
אם משנים את ההפעלה של מאגר התגים במאגר תגים נגזר, צריך להוסיף את /run_jupyter.sh כדי להפעיל את הגדרת ברירת המחדל של JupyterLab.
דוגמה לשינוי אפשרי בקובץ Dockerfile:
# DockerFile FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest CP startup_file.sh / # Ensure that you have the correct permissions and startup is executable. RUN chmod 755 /startup_file.sh && \ chown jupyter:jupyter /startup_file.sh # Override the existing CMD directive from the base container. CMD ["/startup_file.sh"]
# /startup_file.sh
echo "Running startup scripts"
...
/run_jupyter.shעדכון ההגדרה של JupyterLab בתוך מאגר הבסיס
אם אתם צריכים לשנות את ההגדרות של JupyterLab במאגר הבסיסי, אתם צריכים לבצע את הפעולות הבאות:
מוודאים ש-JupyterLab מוגדר ליציאה 8080. סוכן ה-Proxy שלנו מוגדר להעביר כל בקשה ליציאה 8080, ואם שרת Jupyter לא מאזין ליציאה הנכונה, המופע נתקל בבעיות בהקצאת משאבים.
משנים את חבילות JupyterLab בסביבת
jupyterlabmicromamba. אנחנו מספקים סביבת חבילה נפרדת להרצת JupyterLab והתוסף שלו, כדי לוודא שאין התנגשויות בין התלויות לבין סביבת הליבה. אם רוצים להתקין תוסף נוסף ל-JupyterLab, צריך להתקין אותו בסביבתjupyterlab. לדוגמה:# DockerFile FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest RUN micromamba activate jupyterlab && \ jupyter nbextension install nbdime
מטא-נתונים מותאמים אישית של מאגר
בנוסף לרשימה הרגילה של מטא-נתונים שאפשר להחיל על מופע של Gemini Enterprise Agent Platform Workbench, מופעים עם קונטיינרים בהתאמה אישית כוללים את המטא-נתונים הבאים לניהול יצירת המופע של קונטיינר המטען הייעודי:
| תכונה | תיאור | מפתח מטא-נתונים | ערכים מותרים וערכי ברירת מחדל |
|---|---|---|---|
| הפעלת Cloud Storage FUSE בקובץ אימג' של קונטיינר |
הפקודה mount |
container-allow-fuse |
|
| פרמטרים נוספים להפעלת מאגר התגים |
הוספת פרמטרים נוספים של מאגר התגים ל- |
container-custom-params |
מחרוזת של פרמטרים להפעלת מאגר התגים. דוגמה:
|
| סימונים נוספים של סביבת קונטיינרים |
שומר משתני סביבה בדגל מתחת ל-
|
container-env-file |
מחרוזת של משתני סביבה של קונטיינר. דוגמה:
|
שדרוג קונטיינר בהתאמה אישית
כשהמופע מופעל בפעם הראשונה, הוא שולף את קובץ אימג' של קונטיינר מ-URI שמאוחסן במטא-נתונים של custom-container-payload.
אם משתמשים בתג :latest, מאגר התגים מתעדכן בכל הפעלה מחדש. אי אפשר לשנות את ערך המטא-נתונים custom-container-payload ישירות כי זה מפתח מטא-נתונים מוגן.
כדי לעדכן את קובץ האימג' של קונטיינר המותאם אישית של המכונה, אפשר להשתמש בשיטות הבאות שנתמכות על ידי Google Cloud CLI, Terraform או Notebooks API.
gcloud
כדי לעדכן את המטא-נתונים של קובץ האימג' של הקונטיינר בהתאמה אישית במופע של Agent Platform Workbench, משתמשים בפקודה הבאה:
gcloud workbench instances update INSTANCE_NAME \ --container-repository=CONTAINER_URI \ --container-tag=CONTAINER_TAG
Terraform
אפשר לשנות את השדה container_image בתצורת Terraform כדי לעדכן את מטען הייעודי (payload) של מאגר התגים.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
resource "google_workbench_instance" "default" { name = "workbench-instance-example" location = "us-central1-a" gce_setup { machine_type = "n1-standard-1" container_image { repository = "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container" family = "latest" } } }
Notebooks API
משתמשים בשיטה instances.patch עם שינויים ב-gce_setup.container_image.repository וב-gce_setup.container_image.tag ב-updateMask.
הפעלת כלי האבחון
כלי האבחון בודק ומאמת את הסטטוס של שירותים שונים ב-Agent Platform Workbench. מידע נוסף זמין במאמר בנושא משימות שמבוצעות על ידי כלי האבחון.
כשיוצרים מופע של Agent Platform Workbench באמצעות קונטיינר בהתאמה אישית, כלי האבחון לא זמין כסקריפט בסביבת המארח שמשתמשים יכולים להריץ. במקום זאת, הוא עובר קומפילציה לקובץ בינארי ונטען בקונטיינר של זמן ריצה של Google, שנועד להפעיל שירותים לאבחון בסביבת מערכת הפעלה שמותאמת לקונטיינרים. סקירה כללית על מערכת הפעלה שמותאמת לקונטיינרים
כדי להריץ את כלי האבחון:
בטרמינל של SSH, מריצים את הפקודה הבאה:
sudo docker exec diagnostic-service ./diagnostic_tool
כדי לראות אפשרויות נוספות של פקודות, מריצים את הפקודה הבאה:
sudo docker exec diagnostic-service ./diagnostic_tool --help
מידע נוסף על האפשרויות של כלי האבחון מופיע במאמר מעקב אחר מצב התקינות.
כדי להריץ את כלי האבחון באמצעות API בארכיטקטורת REST, אפשר לעיין במסמכי התיעוד של API בארכיטקטורת REST.
גישה למופע
אפשר לגשת למכונה דרך כתובת URL של שרת proxy.
אחרי שהמופע נוצר והוא פעיל, אפשר לקבל את כתובת ה-URL של ה-Proxy באמצעות ה-CLI של gcloud.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
INSTANCE_NAME: השם של מופע Agent Platform Workbench -
PROJECT_ID: מזהה הפרויקט -
LOCATION: האזור שבו נמצאת המכונה
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud workbench instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION | grep proxy-url
Windows (PowerShell)
gcloud workbench instances describe INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION | grep proxy-url
Windows (cmd.exe)
gcloud workbench instances describe INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION | grep proxy-url
proxy-url: 7109d1b0d5f850f-dot-datalab-vm-staging.googleusercontent.com
הפקודה describe מחזירה את כתובת ה-URL של ה-Proxy. כדי לגשת למופע, פותחים את כתובת ה-URL של ה-proxy בדפדפן אינטרנט.
למידע נוסף על הפקודה לתיאור מופע משורת הפקודה, אפשר לעיין בתיעוד של ה-CLI של gcloud.