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

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

כדי להגדיר את הפרויקט ל-Agent Platform Pipelines, צריך לפעול לפי ההוראות הבאות.

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

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

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

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

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

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

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

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

  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). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (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.

    מידע נוסף על יצירת קטגוריות של 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 שמשתמש במפתח הזה, צריך לפעול לפי ההוראות הבאות.

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

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

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

    • ‫LOCATION_ID: האזור שלכם.
    • ‫PROJECT_ID: מזהה הפרויקט. .
    • ‫KEY_RING: השם של אוסף המפתחות ב-Cloud KMS שבו נמצא מפתח ההצפנה.
    • ‫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"
        }
      }
    }