שלב 4: הגדרת רכיבים
בדף הזה מתואר השלב הרביעי בפריסה של Cortex Framework Data Foundation, הליבה של Cortex Framework. בשלב הזה מגדירים את השירותים הנדרשיםGoogle Cloud לפריסה.
הפעלת Google Cloud שירותים
בקטע הזה מפעילים את השירותים הבאים Google Cloud בפרויקטGoogle Cloud :
- מופע ומערכי נתונים של BigQuery
- Cloud Build API
- קטגוריות של Cloud Storage
- חשבון שירות
- Cloud Resource Manager API
- ביצועים של תהליכי עבודה (אם פורסים את Cortex for Meridian)
- AI Platform (אם פורסים את Cortex for Meridian)
מפעילים את השירותים האלה Google Cloud באמצעות Cloud Shell:
מעתיקים ומדביקים את הפקודה הבאה:
gcloud config set project SOURCE_PROJECT gcloud services enable bigquery.googleapis.com \ cloudbuild.googleapis.com \ composer.googleapis.com \ storage-component.googleapis.com \ cloudresourcemanager.googleapis.com \ dataflow.googleapis.com \ datacatalog.googleapis.com \ workflowexecutions.googleapis.com \ workflows.googleapis.com \ aiplatform.googleapis.comמחליפים את
SOURCE_PROJECTבמזהה פרויקט המקור.אם מקבלים הודעה על הצלחה, מוודאים שהשירותים מופעלים. Google Cloud
אופציונלי. אפשר להפעיל את השירותים הבאים Google Cloud בפרויקט:Google Cloud
- Managed Airflow לעיבוד של סימון נתונים שהשתנו (CDC), להשטחת היררכיה (ב-SAP בלבד) וליצירת רפליקות של נתונים (במערכות שאינן SAP בלבד) באמצעות גרפים מכוונים לא מחזוריים (DAG). הוראות להגדרת מופע מופיעות במסמכי Managed Airflow.
- Looker לקישור לתבניות של דוחות.
- שיתוף ב-BigQuery (לשעבר Analytics Hub): מערכי נתונים מקושרים משמשים למקורות חיצוניים מסוימים, כמו Weather DAG. במקרים מתקדמים, אפשר למלא את המבנה הזה בכל מקור זמין אחר שתבחרו.
- Dataflow: כלי שילוב לרוב מערכי הנתונים השיווקיים, כמו Google Ads.
- ב-Cortex Framework עם Meridian:
- Colab Enterprise: הפעלת ה-notebook של Colab Enterprise במהלך ההרצה וגישה לנתונים הבאים:
- מחברת וקובץ תצורה ב-Cloud Storage.
- שליחת שאילתות לגבי תצוגות וטבלאות רלוונטיות ב-BigQuery.
- כתיבת התוצאות בחזרה ל-Cloud Storage.
- Workflows: הרצת ה-Workflow ו-Cloud Build כדי להפעיל הרצות של מחברות Colab Enterprise.
הענקת הרשאות למשתמש שמריץ את הפעולה
כדי להפעיל את הפריסה בפרויקט שבו מופעל Cloud Build, צריך להעניק למשתמש שמבצע את הפקודה את ההרשאות הבאות באמצעותGoogle Cloud המסוף או Google Cloud CLI:
- Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - צפייה באובייקטים באחסון (
roles/storage.objectViewer) - אדמין לניהול נפח האחסון (
roles/storage.admin) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - קורא פרויקטים (
roles/reader) - BigQuery Job User (
roles/bigquery.jobUser) עריכה של נתוני BigQuery (
roles/bigquery.dataEditor)
המסוף
פותחים את הדף IAM במסוף Google Cloud :
בוחרים פרויקט ולוחצים על המשך.
לוחצים על הענקת גישה.
מזינים את כתובת האימייל של המשתמש שמריץ את הפעולה.
בוחרים את התפקידים הבאים מהתפריט הנפתח:
- Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - צפייה באובייקטים באחסון (
roles/storage.objectViewer) - אדמין לניהול נפח האחסון (
roles/storage.admin) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - קורא פרויקטים (
roles/reader) - BigQuery Job User (
roles/bigquery.jobUser) - עריכה של נתוני BigQuery (
roles/bigquery.dataEditor)
- Service Usage Consumer (
לוחצים על Save.
gcloud
כדי להעניק תפקיד למשתמש, מריצים את הפקודה add-iam-policy-binding:
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/serviceusage.serviceUsageConsumer"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/storage.objectViewer"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/storage.admin"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/cloudbuild.builds.editor"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/reader"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="user:USER_EMAIL" \
--role="roles/bigquery.dataEditor"
מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_PROJECTבמזהה פרויקט המקור. USER_EMAILעם כתובת האימייל של המשתמש שמריץ את הפעולה. לדוגמה, user:my-user@example.com. רשימה מלאה של סוגי ישויות, אוmember, מופיעה במאמרי העזרה בנושא קישור מדיניות.
יצירה והגדרה של חשבון השירות של Cloud Build
מערכת Cloud Build משתמשת בחשבון שירות כדי להפעיל בשמכם את גרסאות ה-build. בקטע הזה מוסבר איך ליצור חשבון שירות ייעודי לפריסות של Cortex Framework ואיך לתת את ההרשאות הנדרשות לחשבון השירות של Cloud Build.
יצירת חשבון שירות חדש
כדי לשפר את האבטחה והשליטה, כדאי ליצור חשבון שירות ייעודי לפריסת Cortex Framework. אחרי שיוצרים את חשבון השירות החדש, אפשר לציין את חשבון השירות הזה במהלך תהליך הפריסה באמצעות פרמטר ההחלפה _BUILD_ACCOUNT.
לפני שמתחילים, צריך להפעיל את IAM API, להגדיר אימות ולהבין מהם חשבונות שירות ותפקידים ב-IAM. מידע נוסף מופיע במאמר יצירת חשבונות שירות.
יוצרים את חשבון השירות החדש באמצעות מסוף Google Cloud או Google Cloud CLI.
המסוף
עוברים לדף Service accounts.
שאר השלבים יופיעו במסוף Google Cloud .
בוחרים פרויקט Google Cloud .
מזינים חשבון שירות ושם לתצוגה, עם תיאור ובמסוף Google Cloud . המסוף Google Cloud יוצר מזהה לחשבון השירות על סמך השם הזה. עורכים את המזהה לפי הצורך. אי אפשר לשנות את המזהה בשלב מאוחר יותר. צריך להשתמש בערכי ברירת המחדל הבאים עבור חשבון השירות:
- שם: cortex-deployer
- תיאור: Cortex Deployer Service Account (חשבון שירות של Cortex Deployer).
- השם המוצג: Cortex Deployer.
נותנים למשתמשים גישה לחשבון השירות הזה.
- מוסיפים את המזהה של כל המשתמשים (כולל אתכם) שיכולים להריץ את הפריסה דרך חשבון השירות.
- מקצים את התפקיד יצירת אסימונים בחשבון שירות. מידע נוסף על התפקיד הזה זמין במאמר תפקידים בחשבונות שירות.
לוחצים על Done כדי לסיים ליצור את חשבון השירות.
אם כבר יש לכם חשבון שירות, פועלים לפי השלבים הבאים:
- עוברים אל חשבונות שירות.
- בוחרים את חשבון השירות.
- לוחצים על הכרטיסייה Principals with access (גורמים עם גישה).
- לוחצים על הענקת גישה.
- מוסיפים את המזהה של כל המשתמשים (כולל אתכם) שיכולים להריץ את הפריסה דרך חשבון השירות.
- מקצים את התפקיד יצירת אסימונים בחשבון שירות.
gcloud
יוצרים חשבון שירות באמצעות מדיניות IAM עם הפקודה הבאה:
gcloud iam service-accounts create cortex-deployer \ --description="Cortex Deployer Service Account" \ --display-name="Cortex Deployer"מוסיפים את מדיניות ה-IAM ל Google Cloud פרויקט באמצעות הפקודה הבאה:
gcloud projects add-iam-policy-binding SOURCE_PROJECT \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role="roles/cloudbuild.builds.editor"מוסיפים את המזהה של כל המשתמשים (כולל אתכם) שיכולים להריץ את הפריסה דרך חשבון השירות, ומקצים להם את התפקיד Service Account Token Creator באמצעות הפקודה הבאה:
gcloud iam service-accounts add-iam-policy-binding cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_PROJECTעם פרויקט המקור לפריסת תשתית הנתונים של Cortex Framework. -
USER_EMAILעם כתובת האימייל של המשתמש שמריץ את הפעולה.
-
מידע נוסף על יצירת חשבון שירות חדש זמין במאמר יצירת חשבון שירות.
מתן הרשאות
לחשבון השירות של Cloud Build נדרשות הרשאות ספציפיות בפרויקט המקור (ובפרויקט היעד אם מבצעים פריסה לפרויקט נפרד). צריך להקצות את התפקידים הבאים באמצעות מסוף Google Cloud או Google Cloud CLI:
- חשבון שירות של Cloud Build (
roles/cloudbuild.builds.builder) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - עריכה של נתוני BigQuery (
roles/bigquery.dataEditor) - BigQuery Job User (
roles/bigquery.jobUser) - כתיבת יומנים (
roles/logging.logWriter) - אדמין של Colab Enterprise (
roles/aiplatform.colabEnterpriseAdmin– אם פורסים את Cortex for Meridian) - משתמש באובייקטים באחסון (
roles/storage.objectUser– אם פורסים את Cortex for Meridian) עריכה ב-Workflows (
roles/workflows.editor– אם פורסים את Cortex for Meridian)
המסוף
נכנסים לדף IAM במסוף Google Cloud .
בוחרים את פרויקט המקור.
לוחצים על Grant access.
מוסיפים את חשבון השירות שמוגדר כברירת מחדל ב-Cloud Build מהשלב הקודם כחשבון משתמש חדש.
בתפריט הנפתח Select a role, מחפשים את Cloud Build חשבון שירות ולוחצים על Cloud Build חשבון שירות.
חוזרים על השלב הקודם כדי להוסיף את שאר התפקידים:
- משתמש בחשבון שירות
- עריכה של נתוני BigQuery
- BigQuery Job User
- Logs Writer
- אדמין של Colab Enterprise (אם פורסים את Cortex for Meridian)
- Storage Object User (אם פורסים את Cortex for Meridian)
- Workflows Editor (אם פורסים את Cortex for Meridian)
לוחצים על Save.
מוודאים שחשבון השירות והתפקידים התואמים מופיעים בדף של IAM. זהו! נתתם תפקיד ב-IAM.
gcloud
משתמשים בפקודה הבאה כדי להקצות את התפקידים לחשבון השירות של Cloud Build:
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/cloudbuild.builds.builder"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/bigquery.dataEditor"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/aiplatform.colabEnterpriseAdmin"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/storage.objectUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role="roles/workflows.editor"
מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_PROJECTבמזהה פרויקט המקור. -
CLOUD_BUILD_SAמחליפים בחשבון השירות של Cloud Build, בפורמטCLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.
מידע נוסף זמין במאמרים הענקת תפקיד לחשבון השירות של Cloud Build באמצעות דף IAM והגדרה וניהול של מדיניות IAM בדליים.
יצירת חשבון שירות נוסף ל-Cortex for Meridian
כשפורסים את Cortex Framework, צריך חשבון שירות נפרד בשביל Meridian. אם אתם לא פורסים בשביל Meridian, אתם יכולים לדלג על השלב הזה. צריך חשבון שירות נפרד בשביל:
- הפעלת Workflow ו-Cloud Build כדי להפעיל ביצועים של מחברת Colab Enterprise.
- הפעלת הנוטבוק של Colab Enterprise עם גישה אל:
- מחברת וקובץ תצורה ב-Cloud Storage.
- שליחת שאילתות לגבי תצוגות וטבלאות רלוונטיות ב-BigQuery.
- כתיבת התוצאות בחזרה ל-Cloud Storage.
כדי ליצור חשבון שירות ל-Cortex for Meridian, משתמשים בפקודה הבאה:
gcloud iam service-accounts create cortex-meridian-colab-runner --project=SOURCE_PROJECT \
--description="Cortex for Meridian Colab Runner Service Account" \
--display-name="Cortex Meridian Runner"
מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_PROJECTעם מזהה הפרויקט שבו נפרס Cortex for Meridian. -
cortex-meridian-colab-runner: אפשר להשתמש במזהה אחר של חשבון שירות. חשוב לזכור ש-cortex-meridian-colab-runnerהיא ברירת המחדל, ושינוי שלה עשוי לדרוש התאמות בפקודות אחרות.
אלה התפקידים המינימליים שנדרשים לחשבון שירות ייעודי ל-Cortex for Meridian:
- צפייה בנתוני BigQuery (
roles/bigquery.dataViewer) - BigQuery Job User (
roles/bigquery.jobUser) - BigQuery Read Session User (
roles/bigquery.readSessionUser) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - אדמין של Colab Enterprise (
roles/aiplatform.colabEnterpriseAdmin) - כתיבת יומנים (
roles/logging.logWriter) - אדמין של זמן ריצה ב-Notebook (
aiplatform.notebookRuntimeAdmin) - אדמין לניהול נפח האחסון (
roles/storage.admin) - משתמש באובייקטים באחסון (
roles/storage.objectUser) - סוכן שירות Vertex AI Colab (
roles/aiplatform.colabServiceAgent)
כדי להקצות את התפקידים לחשבון השירות הייעודי של Cortex for Meridian, משתמשים בפקודה הבאה:
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/bigquery.dataViewer'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/bigquery.jobUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/bigquery.readSessionUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/cloudbuild.builds.editor'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/aiplatform.colabEnterpriseAdmin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/logging.logWriter'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/aiplatform.notebookRuntimeAdmin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/storage.admin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/storage.objectUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
--role='roles/aiplatform.colabServiceAgent'
מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_PROJECTעם מזהה הפרויקט שבו נפרס Cortex for Meridian. -
cortex-meridian-colab-runnerעם חשבון השירות שלכם ב-Cortex for Meridian.
יצירת קטגוריית אחסון לאחסון קבצים שקשורים ל-DAG
נדרשת קטגוריית אחסון כדי לאחסן סקריפטים של DAG לעיבוד וקבצים זמניים אחרים שנוצרים במהלך הפריסה. אחרי הפריסה, צריך להעביר את הסקריפטים האלה באופן ידני למופע של Managed Airflow או Apache Airflow.
כדי ליצור את מאגר האחסון באמצעות Google Cloud CLI או מסוף Google Cloud , מבצעים את השלבים הבאים.
המסוף
נכנסים ל-Cloud Storage.
יוצרים bucket באותו אזור שבו נמצאים מערכי הנתונים ב-BigQuery.
בוחרים את הקטגוריה שיצרתם.
עוברים לכרטיסייה
Permissions.מעניקים את ההרשאה
Storage Object Creatorלמזהה המשתמש שמריץ את הפקודה Build או לחשבון השירות שיצרתם. מידע נוסף זמין במאמר הגדרת תנאי חדש בקטגוריה: Console.
gcloud
יוצרים קטגוריה מ-Cloud Shell באמצעות הפקודה הבאה:
gcloud storage buckets create gs://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGIONמחליפים את מה שכתוב בשדות הבאים:
-
COMPOSER_DAG_BUCKETבשם של הקטגוריה החדשה. -
REGION/MULTI_REGIONבאותו אזור כמו מערכי הנתונים שלכם ב-BigQuery.
-
משתמשים בפקודה הבאה כדי להקצות את ההרשאה
Storage Object Creatorלחשבון השירות:gcloud storage buckets add-iam-policy-binding gs://COMPOSER_DAG_BUCKET \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectCreatorמחליפים את מה שכתוב בשדות הבאים:
-
cortex-deployerעם חשבון השירות של Cloud Build. -
COMPOSER_DAG_BUCKETבשם של הקטגוריה החדשה.
-
יצירת קטגוריית אחסון ליומנים
אתם יכולים ליצור קטגוריה ספציפית לתהליך Cloud Build כדי לאחסן את היומנים. האפשרות הזו שימושית אם רוצים להגביל את הנתונים שאולי מאוחסנים ביומנים לאזור ספציפי. אפשר ליצור את קטגוריית האחסון ליומנים באמצעות Google Cloud CLI או מסוף Google Cloud .
המסוף
כדי ליצור מאגר ספציפי ליומנים, פועלים לפי השלבים הבאים:
נכנסים ל-Cloud Storage.
יוצרים קטגוריה באותו אזור שבו הפריסה תפעל.
בוחרים את הקטגוריה שיצרתם.
עוברים לכרטיסייה
Permissions.מעניקים את ההרשאה
Storage Object Adminלמזהה המשתמש שמריץ את הפקודה Build או לחשבון השירות שיצרתם. מידע נוסף זמין במאמר הגדרת תנאי חדש בקטגוריה: Console.
gcloud
כדי ליצור קטגוריה ספציפית ליומנים, משתמשים בפקודות הבאות.
יוצרים קטגוריה מ-Cloud Shell באמצעות הפקודה הבאה:
gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGIONמחליפים את מה שכתוב בשדות הבאים:
-
REGION/MULTI_REGIONעם האזור שנבחר כדי ליצור את הקטגוריה. -
LOGS_BUCKET_NAMEבשם של הקטגוריה החדשה.
-
משתמשים בפקודה הבאה כדי להקצות את ההרשאה
Storage Object Adminלחשבון השירות:gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectAdminמחליפים את מה שכתוב בשדות הבאים:
-
cortex-deployerמחליפים בחשבון השירות שמוגדר כברירת מחדל ב-Cloud Build. -
LOGS_BUCKET_NAMEבשם של הקטגוריה החדשה.
-
השלבים הבאים
אחרי שמסיימים את השלב הזה, עוברים לשלבי הפריסה הבאים:
- הגדרת עומסי עבודה.
- שכפול המאגר.
- קובעים את מנגנון השילוב.
- הגדרת רכיבים (בדף הזה).
- הגדרת הפריסה.
- הפעלת הפריסה.