כלי: run_gcloud_command
הפעלת פקודה אחת של gcloud CLI בפרויקט Google Cloud של המשתמש.
אזהרת בטיחות קריטית (עלולה לגרום נזק): הכלי הזה יכול ליצור, לעדכן או למחוק משאבי GCP (למשל, gcloud compute instances delete). היא לא מוגבלת לפקודות לקריאה בלבד. חשוב לנהוג בזהירות רבה.
פקודות אסורות: אסור לסוכן להריץ את פקודות gcloud הבאות (כולל גרסאות אלפא/בטא שלהן): app deploy, app instances ssh, auth, billing, components, config, docker, feedback, info, init, meta, survey.
כללי ביצוע מחמירים:
- כשמשתמשים בכלי הזה, חובה לציין את הפרמטר project (כלומר project="projects/PROJECT_ID") (הוא משמש לבדיקת ההפעלה של Cloud CLI Execution API, לחיוב, למכסה וכו'). הדגל הזה שונה מהדגל --project בפקודות gcloud שמשמש לציון הפרויקט ש-gcloud פועל בו.
- פורמט הדגל: תמיד צריך להשתמש בסימן '=' כדי להפריד בין מפתחות הדגל לבין הערכים שלהם בכל האפשרויות הארוכות. נכון:
--zone=us-central1-aאו--project=my-project. שגוי:--zone us-central1-aאו--project my-project. - פרויקט לחיוב: אי אפשר להניח שפרויקט או הגדרות חיוב שהוגדרו מראש קיימים בסביבת ההפעלה. לפקודות שלא מוגבלות לפרויקט (לדוגמה, ברמת התיקייה או הארגון) או לתרחישים ספציפיים כמו Cloud Storage Requester Pays, חובה להעביר את הדגל
--billing-project=PROJECT. לפקודות בהיקף הפרויקט, אפשר גם לציין את--billing-project=PROJECTכדי לבטל את המכסה בפרויקט. הפעולה הזו תשפיע על ממשקי GCP API שלא תומכים בביטול המכסה בפרויקט של המשאב. - היקף הפרויקט: תמיד צריך להעביר את הדגל
--project=PROJECT_IDלפקודות בהיקף הפרויקט. אל תשתמשו בה לפקודות ברמת הארגון או התיקייה. אם לא מציינים--project flagעבור פקודה בהיקף פרויקט, פרויקט המשאב יהיה כברירת מחדל הפרויקט שהוגדר בדגל--billing-project. - אם מציינים את הדגל
--billing-projectבפקודת gcloud, צריך לוודא שהערך הוא מזהה פרויקט או מספר פרויקט. הערך לא יכול להיות ערך מיוחד (למשל LEGACY, CURRENT_PROJECT, CURRENT_PROJECT_WITH_FALLBACK). - צריך לציין לפחות אחד מהערכים
--projectאו--billing-projectבמחרוזת הפקודה. - פעולות אסינכרוניות: לפעולות סינכרוניות ארוכות (למשל, יצירת מכונה וירטואלית או מסד נתונים), מומלץ להעביר תמיד את הדגל
--asyncכדי למנוע פסק זמן של הסוכן. - הגבלת קצב יצירת יומנים: כשמשתמשים ב-
gcloud logging read, חובה תמיד לכלול דגל--limit(למשל,--limit=100) כדי למנוע פסק זמן של אישורים וחיבורים. - תיקון עצמי: אם פקודה מחזירה שגיאה, המודל ינתח את stderr, יתקן את התחביר או את האפשרויות וינסה שוב באיטרציה הבאה.
- input_files: (אופציונלי) רשימה של קבצים שייווצרו בסביבה לפני הפעלת הפקודה. לכל קובץ צריך להיות 'path' (יחסי לספרייה הנוכחית) ו-'contents'. התוכן צריך להיות טקסט פשוט שמייצג את התוכן של הקובץ. האפשרות הזו שימושית לפקודות שקוראות מקבצים (למשל,
gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID).
דוגמאות לפקודות או לתבניות של gcloud:
- קריאת יומנים של מופעי GCE עם רמת חומרה>=ERROR:
gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID- שימו לב לשימוש במירכאות בביטוי הסינון.
- הצגת רשימה של כל נקודות הקצה של PSC:
gcloud compute forwarding-rules list --project=PROJECT_ID - מתארים נקודת קצה של PSC:
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID- שימו לב לשימוש בסימן '=' בדגל --region.
- הצגת כל האשכולות:
gcloud container clusters list --project=PROJECT_ID - מתארים אשכול:
gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID - מציגים את מכונות המחשוב:
gcloud compute instances list --project=PROJECT_ID - קבלת מדיניות IAM לפרויקט:
gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID
כברירת מחדל, מחרוזות התגובה מעוצבות לפלט של המסוף (stdout או stderr). כדי לשנות את הפורמט, משתמשים בדגל --format.
בדוגמת הקוד הבאה מוצג שימוש בפקודה curl כדי להפעיל את הכלי run_gcloud_command MCP.
| בקשת Curl |
|---|
curl --location 'https://cloudcli.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "run_gcloud_command", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
סכימת הקלט
הודעת בקשה ל-RunGcloud.
RunGcloudRequest
| ייצוג JSON |
|---|
{
"project": string,
"command": string,
"inputFiles": [
{
object ( |
| שדות | |
|---|---|
project |
חובה. פרויקט להפעלת API ולצריכת מכסה עבור Cloud CLI Execution API. הפורמט צריך להיות projects/ |
command |
חובה. שורת הפקודה המלאה של gcloud שצריך להריץ כמחרוזת אחת. דוגמה: gcloud compute instances create my-vm --zone=us-central1-a מודלי שפה גדולים מקבלים הוראה להשתמש בדגל |
inputFiles[] |
זה שינוי אופציונלי. קבצים שיהיו זמינים לפקודת gcloud לצורך ההרצה שלה. |
קובץ
| ייצוג JSON |
|---|
{ "path": string, "contents": string } |
| שדות | |
|---|---|
path |
חובה. נתיב הקובץ ביחס לספריית הבית. אסור להשתמש בתווים '..' (מעבר לספריית האב) או בהרחבות של מעטפת. |
contents |
חובה. תוכן הקובץ. |
סכימת הפלט
הודעת תגובה ל-RunGcloud.
RunGcloudResponse
| ייצוג JSON |
|---|
{ "response": { object ( |
| שדות | |
|---|---|
response |
התגובה מהרצת כלי ה-CLI, שמכילה stdout, stderr stream וקוד יציאה עצמאיים. |
outputFiles[] |
קבצים שנוצרו על ידי פקודת gcloud מההרצה שלה. |
CliExecutionResponse
| ייצוג JSON |
|---|
{ "stdout": string, "stderr": string, "exitCode": string } |
| שדות | |
|---|---|
stdout |
הפלט הרגיל (stdout) מההרצה של כלי ה-CLI. |
stderr |
מקור הנתונים stderr מהרצת כלי ה-CLI. |
exitCode |
קוד היציאה של הרצת כלי ה-CLI. |
קובץ
| ייצוג JSON |
|---|
{ "path": string, "contents": string } |
| שדות | |
|---|---|
path |
חובה. נתיב הקובץ ביחס לספריית הבית. אסור להשתמש בתווים '..' (מעבר לספריית האב) או בהרחבות של מעטפת. |
contents |
חובה. תוכן הקובץ. |
הערות על כלים
רמז הרסני: ✅ | רמז אידמפוטנטי: ❌ | רמז לקריאה בלבד: ❌ | רמז לעולם פתוח: ❌