הגדרת פרויקט ב-Google Cloud לצינורות של Gemini Enterprise Agent Platform

לפני שמשתמשים ב-Agent Platform Pipelines כדי לתזמן את צינורות עיבוד הנתונים ללמידת מכונה (ML), צריך להגדיר את Google Cloud הפרויקט. חלק מהמשאבים, כמו מאגר המטא-נתונים שמשמש את Vertex ML Metadata, נוצרים בפרויקטGoogle Cloud בפעם הראשונה שמריצים פייפליין.

כדי להגדיר את הפרויקט לצינורות עיבוד נתונים של Agent Platform, פועלים לפי ההוראות הבאות.

  1. יוצרים פרויקט Google Cloud ומגדירים אותו לשימוש ב-Agent Platform Pipelines.

  2. אם לא מציינים חשבון שירות, Agent Platform Pipelines משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כדי להריץ את צינורות הנתונים. מידע נוסף על חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine זמין במאמר שימוש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

    מומלץ ליצור חשבון שירות להרצת צינורות עיבוד הנתונים, ואז להעניק לחשבון הזה הרשאות גרנולריות למשאבים Google Cloud שנדרשים להרצת צינור עיבוד הנתונים.

  3. הפלטפורמה Agent Platform Pipelines משתמשת ב-Cloud Storage כדי לאחסן את הארטיפקטים של הרצות צינורות העיבוד. יוצרים קטגוריה ב-Cloud Storage ומעניקים לחשבון השירות גישה לקטגוריה הזו.

  4. פייפליינים של Agent Platform משתמשים ב-Vertex ML Metadata כדי לאחסן את המטא-נתונים שנוצרו על ידי הרצות הפייפליין. כשמריצים פייפליין בפעם הראשונה, אם מאגר המטא-נתונים של הפרויקט לא קיים, Gemini Enterprise Agent Platform יוצרת את מאגר המטא-נתונים של הפרויקט.

    אם אתם רוצים שהנתונים יוצפנו באמצעות מפתח הצפנה בניהול הלקוח (CMEK), אתם יכולים ליצור את מאגר המטא-נתונים באופן ידני באמצעות מפתח CMEK לפני שמריצים צינור. אחרת, אם אין מאגר מטא-נתונים שמוגדר כברירת מחדל בפרויקט, Gemini Enterprise Agent Platform יוצרת את מאגר המטא-נתונים של הפרויקט באמצעות מפתח ה-CMEK שבו נעשה שימוש כשמריצים את הפייפליין בפעם הראשונה. אחרי שמאגר המטא-נתונים נוצר, הוא משתמש במפתח CMEK ששונה ממפתח ה-CMEK שבו נעשה שימוש בהרצת צינור.

הגדרת הפרויקט ב- Google Cloud

כדי ליצור Google Cloud פרויקט ולהגדיר אותו לשימוש בצינורות של Agent Platform, פועלים לפי ההוראות הבאות.

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Gemini Enterprise Agent Platform, Compute Engine, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. אחרי שתאתחלו את ה-CLI של gcloud, עדכנו אותו והתקינו את הרכיבים הנדרשים:

    gcloud components update
    gcloud components install beta
  9. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Gemini Enterprise Agent Platform, Compute Engine, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the APIs

  12. Install the Google Cloud CLI.

  13. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  14. To initialize the gcloud CLI, run the following command:

    gcloud init
  15. אחרי שתאתחלו את ה-CLI של gcloud, עדכנו אותו והתקינו את הרכיבים הנדרשים:

    gcloud components update
    gcloud components install beta

הגדרת חשבון שירות עם הרשאות גרנולריות

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

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

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

    1. מריצים את הפקודה הבאה כדי ליצור חשבון שירות.

      gcloud iam service-accounts create SERVICE_ACCOUNT_ID \
          --description="DESCRIPTION" \
          --display-name="DISPLAY_NAME" \
          --project=PROJECT_ID
      

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

      • ‫SERVICE_ACCOUNT_ID: המזהה של חשבון השירות.
      • ‫DESCRIPTION: (אופציונלי). תיאור של חשבון השירות.
      • ‫DISPLAY_NAME: השם המוצג של חשבון השירות.
      • ‫PROJECT_ID: הפרויקט שבו רוצים ליצור את חשבון השירות.

      מידע נוסף על יצירת חשבון שירות

    2. נותנים לחשבון השירות גישה ל-Gemini Enterprise Agent Platform. חשוב לזכור: יכול להיות שיעבור זמן עד שהשינוי בהרשאות יתעדכן. מידע נוסף זמין במאמר הפצת שינוי גישה.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/aiplatform.user"
      

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

      • ‫PROJECT_ID: הפרויקט שבו נוצר חשבון השירות.
      • ‫SERVICE_ACCOUNT_ID: המזהה של חשבון השירות.
    3. אתם יכולים להשתמש ב-Artifact Registry כדי לארח קובצי אימג' של קונטיינרים ותבניות של Kubeflow Pipelines.

      מידע נוסף על Artifact Registry זמין במאמרי העזרה של Artifact Registry.

    4. מעניקים לחשבון השירות גישה לכל Google Cloud המשאבים שבהם משתמשים בצינורות עיבוד הנתונים.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="ROLE_NAME"
      

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

      • ‫PROJECT_ID: הפרויקט שבו נוצר חשבון השירות.
      • ‫SERVICE_ACCOUNT_ID: המזהה של חשבון השירות.
      • ‫ROLE_NAME: תפקיד ניהול הזהויות והרשאות הגישה (IAM) שרוצים להעניק לחשבון השירות הזה.
    5. כדי להשתמש ב-Agent Platform Pipelines להרצת צינורות עם חשבון השירות הזה, מריצים את הפקודה הבאה כדי להקצות לחשבון המשתמש את התפקיד 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"
      

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

      • ‫SERVICE_ACCOUNT_ID: המזהה של חשבון השירות.
      • ‫PROJECT_ID: הפרויקט שבו נוצר חשבון השירות.
      • ‫USER_EMAIL: כתובת האימייל של המשתמש שמריץ צינורות כחשבון השירות הזה.
  • אם אתם מעדיפים להשתמש בחשבון השירות שמוגדר כברירת מחדל של Compute Engine כדי להריץ את צינורות העיבוד, אתם צריכים להפעיל את Compute Engine API ולתת לחשבון השירות שמוגדר כברירת מחדל גישה ל-Gemini Enterprise Agent Platform. חשוב לזכור: יכול להיות שיעבור זמן עד שהשינוי בהרשאות יתעדכן. מידע נוסף זמין במאמר הפצת שינוי גישה.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/aiplatform.user"
    

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

    • ‫PROJECT_ID: הפרויקט שבו נוצר חשבון השירות שמוגדר כברירת מחדל.
    • ‫PROJECT_NUMBER: מספר הפרויקט שבו נוצר חשבון השירות שמוגדר כברירת מחדל.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

הגדרת קטגוריה של Cloud Storage לאחסון ארטיפקטים של צינורות

הפלטפורמה Agent Platform Pipelines מאחסנת את הארטיפקטים של הפעלות צינורות העברת הנתונים באמצעות Cloud Storage. כדי ליצור קטגוריה של Cloud Storage ולתת לחשבון השירות (או לחשבון השירות שמוגדר כברירת מחדל של Compute Engine) הרשאת גישה לקריאה ולכתיבה של אובייקטים בקטגוריה הזו, פועלים לפי ההוראות הבאות.

  1. מריצים את הפקודה הבאה כדי ליצור קטגוריה של Cloud Storage באזור שבו רוצים להריץ את צינורות העיבוד.

    gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
    

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

    • ‫PROJECT_ID: ציון הפרויקט שאליו הקטגוריה משויכת.
    • ‫BUCKET_LOCATION: ציון המיקום של הקטגוריה, לדוגמה US-CENTRAL1.
    • ‫BUCKET_NAME: השם שרוצים לתת לקטגוריה, בכפוף לדרישות למתן שמות. לדוגמה: my-bucket.

    מידע נוסף על יצירת מאגרי מידע (buckets) ב-Cloud Storage

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

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/storage.objectUser
    

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

    • ‫SERVICE_ACCOUNT_ID: המזהה של חשבון השירות.
    • ‫PROJECT_ID: הפרויקט שבו נוצר חשבון השירות.
    • ‫BUCKET_NAME: השם של הקטגוריה שרוצים לתת לחשבון השירות גישה אליה.

    לחלופין, אם אתם מעדיפים להשתמש בחשבון השירות שמוגדר כברירת מחדל של Compute Engine כדי להריץ את צינורות העיבוד, אתם יכולים להריץ את הפקודה gcloud iam service-accounts list כדי לאתר את מספר הפרויקט של החשבון הזה.

    gcloud iam service-accounts list
    

    חשבון השירות של Compute Engine שמוגדר כברירת מחדל נקרא כך: PROJECT_NUMBER-compute@developer.gserviceaccount.com.

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

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
    --role=roles/storage.objectUser
    

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

    • ‫PROJECT_NUMBER: מספר הפרויקט של חשבון השירות של Compute Engine שמוגדר כברירת מחדל.
    • ‫BUCKET_NAME: השם של הקטגוריה שרוצים לתת לחשבון השירות גישה אליה.

    מידע נוסף על בקרת גישה לדליים ב-Cloud Storage

יצירת מאגר מטא-נתונים שמשתמש במפתח CMEK (אופציונלי)

כדי ליצור CMEK ולהגדיר מאגר מטא-נתונים של Vertex ML Metadata שמשתמש ב-CMEK הזה, פועלים לפי ההוראות הבאות.

  1. שימוש ב-Cloud Key Management Service כדי להגדיר מפתח הצפנה בניהול הלקוח

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

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫LOCATION_ID: האזור שלכם.
    • ‫PROJECT_ID: מזהה הפרויקט. .
    • ‫KEY_RING: השם של אוסף המפתחות ב-Cloud Key Management Service שבו נמצא מפתח ההצפנה.
    • ‫KEY_NAME: השם של מפתח ההצפנה שרוצים להשתמש בו בשביל מאגר המטא-נתונים הזה.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default

    תוכן בקשת JSON:

    {
      "encryption_spec": {
        "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
      },
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATIONS_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata",
        "genericMetadata": {
          "createTime": "2021-05-18T18:47:14.494997Z",
          "updateTime": "2021-05-18T18:47:14.494997Z"
        }
      }
    }