ניהול של ממשקי Cloud API וספריות לקוח ב-Cloud ב-Cloud Code ל-Cloud Shell

כדי לגשת למוצרים ולשירותים באופן פרוגרמטי, משתמשים ב-Cloud APIs. Google Cloud ממשקי ה-API האלה חושפים ממשק REST פשוט בפורמט JSON. הדרך המומלצת לגשת אל Cloud APIs היא באמצעות ספריות הלקוח ב-Cloud.

בעזרת Cloud Code, קל להוסיף לפרויקט את ספריות הלקוח של Cloud עבור Cloud APIs והשפה שבה אתם משתמשים. באותו תצוגה, אפשר לחפש דוגמאות לכל API ולשלב בקלות דוגמאות באפליקציה.

עיון בממשקי Cloud API

כדי לעיין בכל ממשקי ה-API הזמינים של Google Cloud :

  1. לוחצים על Cloud Code ומרחיבים את הקטע Cloud APIs.

    בתצוגה Cloud APIs, ממשקי ה-API של Cloud מקובצים לפי קטגוריה.

  2. כדי לראות את הפרטים של API, לוחצים על שם ה-API. מוצגים פרטים כמו שם השירות, הסטטוס, הוראות ההתקנה של ספריות הלקוח, תיעוד ודוגמאות קוד.

הפעלת ממשקי Cloud API

כדי להפעיל ממשקי Cloud API בפרויקט באמצעות דף הפרטים של ה-API, צריך לבצע את השלבים הבאים:

  1. בדף הפרטים של Cloud API, בוחרים את הפרויקט שרוצים להפעיל בו את Cloud API.
  2. לוחצים על Enable API. אחרי שה-API מופעל, מוצגת הודעה לאישור השינוי.

הוספת ספריות לקוח לפרויקט

בנוסף לחיפוש ולהפעלה של Cloud APIs באמצעות Cloud Code, אפשר להוסיף לפרויקט ספריית לקוח ספציפית לשפה.

כדי להתקין ספריית לקוח, פועלים לפי ההוראות בדף פרטי ה-API בשפה הרלוונטית.

שימוש בדוגמאות ל-API

אפשר לחפש דוגמאות קוד לכל API ולהשתמש בהן בדפדפן ה-API.

  1. לוחצים על Cloud Code ומרחיבים את הקטע Cloud APIs.

  2. כדי לפתוח את התצוגה המפורטת, לוחצים על השם של ה-API.

  3. כדי לראות דוגמאות קוד ל-API, לוחצים על דוגמאות קוד.

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

  5. כדי לראות דוגמה, לוחצים על שם הדוגמה. יש גם אפשרויות להעתיק את הדוגמה ללוח או לצפות בדוגמה ב-GitHub.

הגדרת אימות

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

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

פיתוח מקומי

המכונה הווירטואלית של Cloud Shell משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine (חשבון השירות ש-Google Kubernetes Engine משתמש בו כברירת מחדל) כחשבון השירות שמוגדר כברירת מחדל. המשמעות היא שכאשר מפתחים באמצעות Cloud Code ב-Cloud Shell, לא צריך להגדיר הגדרות נוספות כשעובדים עם ספריות לקוח. האפליקציה שלך מאומתת ומוכנה להרצה מקומית.

פיתוח מקומי באמצעות ממשקי API שנדרש להם חשבון שירות

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

  1. כדי לפתוח טרמינל, לוחצים על Terminal (טרמינל) > New Terminal (טרמינל חדש).

  2. יוצרים חשבון שירות כדי לאמת את בקשות ה-API:

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID

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

    • SERVICE_ACCOUNT_ID: המזהה של חשבון השירות
    • PROJECT_ID: מזהה הפרויקט

    כדי למצוא את המזהים האלה, ב- Google Cloudלוחצים על תפריט הניווט בפינה הימנית העליונה של המסך, מעבירים את מצביע העכבר מעל IAM & Admin ולוחצים על Service Accounts.

    בעמודה Email מוצגים המזהים הייחודיים SERVICE_ACCOUNT_ID ו-PROJECT_ID של כל חשבון שירות בפורמט הבא:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    לדוגמה: כתובת האימייל בחשבון שירות my-service-account@my-project.iam.gserviceaccount.com כוללת את הערכים הבאים:

    • SERVICE_ACCOUNT_ID: my-service-account
    • PROJECT_ID: my-project
  3. מקצים לחשבון השירות את התפקיד המתאים. בדוגמה הבאה של פקודה מוקצה התפקיד Cloud Translation API User. כדי לדעת איזה תפקיד להקצות, אפשר לעיין במסמכים של Cloud API שבו אתם משתמשים.

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
  4. יוצרים מַפְתח לחשבון השירות:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
  5. הגדרת המפתח כפרטי ברירת המחדל:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. אופציונלי: כדי לאפשר למשתמשים להתחזות לחשבון השירות, מריצים את הפקודה gcloud iam service-accounts add-iam-policy-binding כדי להקצות למשתמש את התפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון השירות:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"

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

    • USER_EMAIL: כתובת האימייל של המשתמש

פיתוח מרחוק

GKE

בהתאם להיקף הפרויקט, אפשר לבחור איך לאמת שירותים ב-GKE: Google Cloud

  • (לפיתוח בלבד)
    1. יוצרים אשכול GKE עם ההגדרות הבאות:
      • מוודאים שאתם משתמשים בחשבון השירות ש-GKE משתמש בו כברירת מחדל, בחשבון השירות שמשמש כברירת המחדל של Compute Engine, ושהיקפי הגישה מוגדרים למתן גישה מלאה לכל ממשקי Cloud API (שתי ההגדרות האלה זמינות בקטע Node Pools > Security). מכיוון שחשבון השירות של Compute Engine משותף לכל עומסי העבודה שנפרסו בצומת, השיטה הזו מקצה הרשאות מעבר לנדרש, ולכן מומלץ להשתמש בה רק לצורכי פיתוח.
      • מוודאים ש-Workload Identity לא מופעל באשכול (בקטע Cluster (אשכול) > Security (אבטחה)).
    2. מקצים לחשבון השירות את התפקידים הנדרשים:
      • אם אתם משתמשים בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, יכול להיות שהתפקידים הנכונים ב-IAM כבר הוקצו.
      • רשימה של סוגי תפקידים ב-IAM ותפקידים מוגדרים מראש שאפשר להקצות לזהויות מופיעה במאמר הסבר על התפקידים. במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידים.
  • (מומלץ לשימוש בסביבת ייצור)
    1. מגדירים את אשכול GKE ואת האפליקציה באמצעות Workload Identity כדי לאמת שירותים ב-GKE. Google Cloud כך משייכים את חשבון השירות של Kubernetes לחשבון השירות של Google.
    2. מגדירים את פריסת Kubernetes כך שתפנה לחשבון השירות של Kubernetes על ידי הגדרת השדה .spec.serviceAccountName בקובץ ה-YAML של פריסת Kubernetes. אם אתם עובדים על אפליקציה שנוצרה מדוגמת קוד של Cloud Code, הקובץ הזה נמצא בתיקייה kubernetes-manifests.
    3. אם Google Cloud השירות שאתם מנסים לגשת אליו דורש תפקידים נוספים, צריך להעניק אותם לחשבון השירות של Google שבו אתם משתמשים כדי לפתח את האפליקציה:

Cloud Run

  1. כדי ליצור חשבון שירות ייחודי חדש לפריסת האפליקציה שלכם ב-Cloud Run, עוברים לדף Service Accounts (חשבונות שירות) ובוחרים את הפרויקט שבו מאוחסן הסוד.

    כניסה לדף Service Accounts

  2. לוחצים על יצירת חשבון שירות.
  3. בתיבת הדו-שיח Create service account, מזינים שם תיאורי לחשבון השירות.
  4. משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה.
  5. אם השירות שאליו אתם מנסים לגשת דורש תפקידים נוספים, מקצים את התפקידים, לוחצים על Continue ואז על Done. Google Cloud
  6. כדי להוסיף את חשבון השירות להגדרת הפריסה:
    1. בסרגל הסטטוס של Cloud Code, בוחרים בפקודה Cloud Run: Deploy.
    2. בממשק המשתמש של Cloud Run Deployment, בקטע Revision Settings, בשדה Service Account, מציינים את חשבון השירות.
    הקטע Advanced revision settings מורחב ב-Cloud Run: השדה Deploy והשדה Service Account מלאים בשם חשבון השירות בפורמט service-account-name@project-name.iam.gserviceaccount.com

Cloud Run

בהתאם להיקף הפרויקט, אפשר לבחור איך לאמת שירותים ב-GKE: Google Cloud

  • (לפיתוח בלבד)
    1. יוצרים אשכול GKE עם ההגדרות הבאות:
      • מוודאים שמשתמשים בחשבון השירות ש-GKE משתמש בו כברירת מחדל, בחשבון השירות שמשמש כברירת המחדל של Compute Engine, ושהיקפי הגישה מוגדרים למתן גישה מלאה לכל ממשקי ה-API של Cloud (שתי ההגדרות האלה זמינות בקטע Node Pools > Security). מכיוון שחשבון השירות של Compute Engine משותף לכל עומסי העבודה שנפרסו בצומת, השיטה הזו מקצה הרשאות מעבר לנדרש, ולכן מומלץ להשתמש בה רק לצורכי פיתוח.
      • מוודאים ש-Workload Identity לא מופעל באשכול (בקטע Cluster (אשכול) > Security (אבטחה)).
    2. מקצים לחשבון השירות את התפקידים הנדרשים:
      • אם אתם משתמשים בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, יכול להיות שהתפקידים הנכונים ב-IAM כבר הוקצו.
      • רשימה של סוגי תפקידים ב-IAM ותפקידים מוגדרים מראש שאפשר להעניק לזהויות מופיעה במאמר הסבר על התפקידים. במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידים.
  • (מומלץ לשימוש בסביבת ייצור)
    1. מגדירים את אשכול GKE ואת האפליקציה באמצעות Workload Identity כדי לאמת שירותים ב-GKE. Google Cloud כך משייכים את חשבון השירות של Kubernetes לחשבון השירות של Google.
    2. כדי להוסיף את חשבון השירות להגדרת הפריסה:
      1. בסרגל הסטטוס של Cloud Code, בוחרים בפקודה Cloud Run: Deploy.
      2. בממשק המשתמש של Cloud Run Deployment, בקטע Revision Settings, בשדה Service Account, מציינים את חשבון השירות.
      הקטע Advanced revision settings מורחב ב-Cloud Run: השדה Deploy והשדה Service Account מלאים בשם חשבון השירות של Kubernetes בפורמט service-account-name@project-name.iam.gserviceaccount.com
    3. אם Google Cloud השירות שאליו אתם מנסים לגשת דורש תפקידים נוספים, צריך להקצות אותם לחשבון השירות של Google שבו אתם משתמשים כדי לפתח את האפליקציה:

פיתוח מרחוק עם הרשאות Secret Manager מופעלות

אם אתם מפתחים מרחוק, משתמשים בחשבון שירות לאימות והאפליקציה שלכם משתמשת בסודות, תצטרכו לבצע עוד כמה שלבים בנוסף להוראות לפיתוח מרחוק. בשלבים האלה מקצים לחשבון השירות של Google את התפקיד הנדרש כדי לגשת לסוד מסוים ב-Secret Manager:

  1. לוחצים על Cloud Code (קוד Cloud) ומרחיבים את הקטע Secret Manager (ניהול סודות).

    ‫Secret Manager ב-Cloud Code פתוח עם שני סודות ברשימה

  2. לוחצים לחיצה ימנית על הסוד ובוחרים באפשרות עריכת הרשאות במסוף Cloud. כך ייפתח דף ההגדרות של Secret Manager עבור הסוד הזה בדפדפן האינטרנט.

    סוד שנלחצה עליו לחיצה ימנית בחלונית Secret Manager

  3. במסוף Google Cloud , לוחצים על Permissions ואז על Add.

  4. בשדה New principals, מזינים את השם של חשבון השירות.

  5. בשדה Select a role, בוחרים את התפקיד Secret Manager Secret Accessor.

  6. לוחצים על Save.

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