מחיקת ספריית הלקוח של Cloud SDK

Last reviewed 2025-11-13 UTC

במדריך הזה מוסבר איך למחוק את הפתרון ההתחלתי "ספריית הלקוח של Cloud SDK". המדריך הזה מסביר איך למחוק פריסה קיימת של הפתרון.

עלות

כדי לקבל הערכה של עלות ה Google Cloud משאבים שבהם נעשה שימוש בפתרון של ספריית הלקוח Cloud SDK, אפשר לעיין בהערכה שחושבה מראש ב Google Cloud מחשבון עלויות.

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

האומדן המחושב מראש מבוסס על הנחות לגבי גורמים מסוימים, כולל:

  • המיקומים ב- Google Cloud שבהם המשאבים נפרסים.
  • משך הזמן שבו נעשה שימוש במשאבים.

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

  • המיקומים ב- Google Cloud שבהם המשאבים נפרסים.
  • משך הזמן שבו נעשה שימוש במשאבים.

קבלת הרשאות ה-IAM הנדרשות

כדי למחוק פריסה קיימת, צריך את ההרשאות לניהול זהויות והרשאות גישה (IAM) שמפורטות בטבלה הבאה. אם יש לכם את roles/owner התפקיד הבסיסי בפרויקט שבו הפתרון נפרס, אז כבר יש לכם את כל ההרשאות הנדרשות. אם אין לכם את התפקיד roles/owner, בקשו מהאדמין לתת לכם את ההרשאות האלה (או את התפקידים שכוללים את ההרשאות האלה).

הרשאת IAM נדרשת תפקיד מוגדר מראש שכולל את ההרשאות הנדרשות

serviceusage.services.enable

אדמין של שימוש בשירות
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

אדמין בחשבון שירות
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

אדמין IAM בפרויקט
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
אדמין של Cloud Infrastructure Manager
(roles/config.admin)

חשבון שירות שנוצר בשביל הפתרון

כשמתחילים את תהליך המחיקה דרך המסוף, נוצר חשבון שירות כדי לפרוס את הפתרון בשבילכם (ולמחוק את הפריסה מאוחר יותר, אם תרצו). לחשבון השירות הזה מוקצות הרשאות IAM מסוימות באופן זמני, כלומר ההרשאות מבוטלות באופן אוטומטי אחרי שפעולות הפריסה והמחיקה של הפתרון מסתיימות. ‫Google ממליצה למחוק את חשבון השירות אחרי שמוחקים את הפריסה, כמו שמתואר בהמשך המדריך הזה.

צפייה בתפקידים של חשבון שירות

התפקידים האלה מפורטים למקרה שאדמין של הפרויקט או הארגון ב- Google Cloud צריך את המידע הזה.

  • roles/storage.admin
  • roles/run.admin
  • roles/iam.serviceAccountAdmin
  • roles/iam.serviceAccountUser
  • roles/resourcemanager.projectIamAdmin
  • roles/iam.roleAdmin
  • roles/serviceusage.serviceUsageAdmin

מחיקת הפריסה

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

מחיקה דרך המסוף

משתמשים בהליך הזה אם פרסתם את הפתרון דרך המסוף.

  1. נכנסים לדף Solution deployments במסוף Google Cloud .

    מעבר אל פריסות של פתרונות

  2. בוחרים את הפרויקט שמכיל את הפריסה שרוצים למחוק.

  3. מאתרים את הפריסה שרוצים למחוק.

  4. בשורה של הפריסה, לוחצים על Actions ובוחרים באפשרות Delete.

    יכול להיות שתצטרכו לגלול כדי לראות את הפעולות בשורה.

  5. מזינים את שם הפריסה ולוחצים על אישור.

    בשדה Status מופיע הערך Deleting.

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

כשכבר לא צריך את הפרויקט ב- Google Cloud ששימש לפתרון, אפשר למחוק אותו. מידע נוסף זמין במאמר אופציונלי: מחיקת הפרויקט.

מחיקה באמצעות ה-CLI של Terraform

משתמשים בהליך הזה אם פרסתם את הפתרון באמצעות Terraform CLI.

  1. ב-Cloud Shell, מוודאים שספריית העבודה הנוכחית היא $HOME/cloudshell_open/terraform-cloud-client-api/infra. אם לא, עוברים לספרייה הזו.

  2. מסירים את המשאבים שהוקצו על ידי Terraform:

    terraform destroy
    

    ב-Terraform תוצג רשימה של המשאבים שיוסרו.

  3. כשמופיעה בקשה לבצע את הפעולות, מזינים yes.

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

    Destroy complete!
    

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

כשכבר לא צריך את הפרויקט ב- Google Cloud ששימש לפתרון, אפשר למחוק אותו. מידע נוסף זמין במאמר אופציונלי: מחיקת הפרויקט.

אופציונלי: מחיקת הפרויקט

אם פרסתם את הפתרון בפרויקט חדש ב- Google Cloud ואתם לא צריכים יותר את הפרויקט, אתם יכולים למחוק אותו:

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. בהודעה שמופיעה, מקלידים את מזהה הפרויקט ולוחצים על Shut down.

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

אופציונלי: מחיקה של חשבון השירות

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

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

  • אם פרסתם את הפתרון דרך מסוף Google Cloud , עוברים לדף Solution deployments. (אם אתם כבר בדף הזה, רעננו את הדפדפן). תהליך מחיקת חשבון השירות מופעל ברקע. לא נדרשת פעולה נוספת.

  • אם פרסתם את הפתרון באמצעות Terraform CLI, בצעו את הפעולות הבאות:

    1. נכנסים לדף Service accounts במסוף Google Cloud .

      כניסה לדף Service accounts

    2. בוחרים את הפרויקט שבו השתמשתם לפתרון.

    3. בוחרים את חשבון השירות שרוצים למחוק.

      מזהה האימייל של חשבון השירות שנוצר בשביל הפתרון הוא בפורמט הבא:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      מזהה האימייל מכיל את הערכים הבאים:

      • ‫DEPLOYMENT_NAME: שם הפריסה.
      • ‫NNN: מספר אקראי בן 3 ספרות.
      • ‫PROJECT_ID: מזהה הפרויקט שבו פרסתם את הפתרון.
    4. לוחצים על Delete.

פתרון בעיות

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

שגיאה במחיקת פריסה

במקרים מסוימים, ניסיונות למחוק פריסה עלולים להיכשל:

  • אחרי פריסת פתרון דרך המסוף, אם משנים משאב כלשהו שהוקצה על ידי הפתרון, ואז מנסים למחוק את הפריסה, יכול להיות שהמחיקה תיכשל. בשדה Status בדף Solution deployments מופיע הערך Failed, וביומן של Cloud Build מופיעה הסיבה לשגיאה.
  • אם פורסים פתרון באמצעות Terraform CLI, משנים משאב כלשהו באמצעות ממשק שאינו Terraform (לדוגמה, המסוף) ואז מנסים למחוק את הפריסה, יכול להיות שהמחיקה תיכשל. ההודעות בפלט של הפקודה terraform destroy מציגות את הסיבה לשגיאה.

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

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

מחיקת פריסה שמבוססת על המסוף באמצעות Terraform CLI

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

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

    1. נכנסים לדף Solution deployments במסוף Google Cloud .

      מעבר לדף Solution deployments

    2. בוחרים את הפרויקט שמכיל את הפריסה שרוצים למחוק.

    3. ברשימת הפריסות, מאתרים את השורה של הפריסה שרוצים למחוק.

    4. לוחצים על View all row content.

    5. בעמודה מיקום, שימו לב למיקום השני, כפי שמודגש בדוגמה הבאה:

      המיקום של קוד הפריסה, היומנים ופריטים אחרים.

  2. מפעילים את Cloud Shell במסוף Google Cloud .

    הפעלת Cloud Shell

    בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  3. יוצרים משתני סביבה למזהה הפרויקט, לאזור ולשם של הפריסה שרוצים למחוק:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

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

    • ‫REGION: המיקום שציינתם קודם בתהליך הזה.
    • ‫PROJECT_ID: מזהה הפרויקט שבו פרסתם את הפתרון.
    • ‫DEPLOYMENT_NAME: השם של הפריסה שרוצים למחוק.
  4. מאתרים את המזהה של הגרסה האחרונה של הפריסה שרוצים למחוק:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    הפלט אמור להיראות כך:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. מאתרים את המיקום ב-Cloud Storage של קובץ התצורה של Terraform לפריסה:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    הדוגמה הבאה היא של הפלט שמתקבל מהפקודה הזו:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. מורידים את קובץ התצורה של Terraform מ-Cloud Storage אל Cloud Shell:

    gcloud storage cp $CONTENT_PATH $HOME --recursive
    cd $HOME/content/infra
    

    מחכים עד שההודעה Operation completed תוצג, כמו בדוגמה הבאה:

    Operation completed over 45 objects/268.5 KiB
    
  7. מאתחלים את Terraform:

    terraform init
    

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

    Terraform has been successfully initialized!
    
  8. מסירים את המשאבים שנפרסו:

    terraform destroy
    

    ב-Terraform מוצגת רשימה של המשאבים שיוסרו.

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

  9. כשמופיעה בקשה לבצע את הפעולות, מזינים yes.

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

    Destroy complete!
    
  10. מוחקים את פריט המידע שנוצר בתהליך הפיתוח (Artifact) של הפריסה:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. ממתינים כמה שניות ואז מוודאים שפריט הפריסה נמחק:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

    אם הפלט הוא null, ממתינים כמה שניות ומריצים שוב את הפקודה.

    אחרי שהפריט נמחק, מוצגת הודעה כמו בדוגמה הבאה:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    

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

שותפים ביצירת התוכן

מחבר: Kadeem Dunn | כותב טכני

תורמת נוספת: קייטי מקלפלין | מהנדסת בכירה לקשרי מפתחים