步驟 4:設定元件
本頁說明部署 Cortex Framework 資料基礎的第四個步驟,這是 Cortex Framework 的核心。在這個步驟中,您將設定要部署的必要Google Cloud 服務。
啟用 Google Cloud 服務
在本節中,您將在專案中啟用下列服務: Google Cloud Google Cloud
- BigQuery 執行個體和資料集
- Cloud Build API
- Cloud Storage 值區
- 服務帳戶
- Cloud Resource Manager API
- Data Catalog API (如要部署 Datamesh)
- 工作流程執行作業 (如要部署 Cortex for Meridian)
- AI 平台 (如要部署 Cortex for Meridian)
使用 Cloud Shell 啟用這些 Google Cloud 服務:
複製並貼上下列指令:
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
替換為來源專案 ID。如果收到成功訊息,請確認 Google Cloud 服務已啟用。
(選用) 您可以在 Google Cloud 專案中啟用下列Google Cloud 服務:
- Cloud Composer:透過有向非循環圖 (DAG) 處理變更資料擷取 (CDC)、階層扁平化 (僅限 SAP) 和資料複製 (僅限非 SAP)。如要設定執行個體,請參閱 Cloud Composer 說明文件。
- Looker,用於連結報表範本。
- BigQuery sharing (舊稱 Analytics Hub) 連結的資料集會用於部分外部來源,例如 Weather DAG。在進階情境中,您可能會選擇使用任何其他可用來源填入這個結構。
- 資料流程: 整合工具,適用於許多行銷資料集,例如 Google Ads。
- Dataplex Universal Catalog:用於建構資料網格。詳情請參閱 Data Mesh 使用者指南。
- 搭配 Meridian 使用 Cortex Framework:
- Colab Enterprise:執行 Colab Enterprise 筆記本,並在執行期間存取下列項目:
- Cloud Storage 中的筆記本和設定檔。
- 查詢相關的 BigQuery 檢視區塊和資料表。
- 將結果寫回 Cloud Storage。
- Workflows:執行 Workflow 和 Cloud Build,觸發 Colab Enterprise 筆記本執行作業。
授予執行使用者權限
使用Google Cloud 控制台或 Google Cloud CLI,將下列權限授予執行部署作業的使用者,以便在觸發 Cloud Build 的專案中執行部署作業:
- 服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer
) - Storage 物件檢視者 (
roles/storage.objectViewer
) - 儲存空間管理員 (
roles/storage.admin
) - Cloud Build 編輯者 (
roles/cloudbuild.builds.editor
) - 專案讀取者 (
roles/reader
) - BigQuery 工作使用者 (
roles/bigquery.jobUser
) BigQuery 資料編輯者 (
roles/bigquery.dataEditor
)
主控台
在 Google Cloud 控制台中開啟「IAM」頁面:
選取您的專案並按一下 [繼續]。
按一下「授予存取權」。
輸入執行使用者的電子郵件地址。
從下拉式選單中選取下列角色:
- 服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer
) - Storage 物件檢視者 (
roles/storage.objectViewer
) - 儲存空間管理員 (
roles/storage.admin
) - Cloud Build 編輯者 (
roles/cloudbuild.builds.editor
) - 專案讀取者 (
roles/reader
) - BigQuery 工作使用者 (
roles/bigquery.jobUser
) - BigQuery 資料編輯者 (
roles/bigquery.dataEditor
)
- 服務使用情形消費者 (
按一下 [儲存]。
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
替換為來源專案 ID。 USER_EMAIL
,並附上執行使用者的電子郵件地址。 例如:user:my-user@example.com。如需主體或member
類型的完整清單,請參閱政策繫結參考資料。
建立及設定 Cloud Build 服務帳戶
Cloud 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 控制台會根據這個名稱產生服務帳戶 ID。請視需要編輯 ID,ID 設定後即無法變更。請為服務帳戶使用下列預設值:
- 名稱:「cortex-deployer」。
- 說明:「Cortex Deployer Service Account」。
- 顯示名稱:「Cortex Deployer」。
將這個服務帳戶的存取權授予使用者。
- 新增所有可透過服務帳戶執行部署作業的使用者 ID (包括您自己的 ID)。
- 指派「服務帳戶憑證建立者」角色。如要進一步瞭解這個角色,請參閱「服務帳戶角色」。
按一下「Done」(完成),即完成建立服務帳戶。
如果已有服務帳戶,請按照下列步驟操作:
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"
新增所有可透過服務帳戶執行部署作業的使用者 ID (包括您自己的),並使用下列指令指派「服務帳戶憑證建立者」角色:
gcloud iam service-accounts add-iam-policy-binding cortex-deployer\ --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 工作使用者 (
roles/bigquery.jobUser
) - 記錄寫入者 (
roles/logging.logWriter
) - Colab Enterprise 管理員 (
roles/aiplatform.colabEnterpriseAdmin
- 如果部署 Cortex for Meridian) - Storage 物件使用者 (
roles/storage.objectUser
- 如果部署 Cortex for Meridian) 工作流程編輯者 (
roles/workflows.editor
- 如果部署 Cortex for Meridian)
控制台
前往 Google Cloud 控制台的「IAM」頁面。
選取來源專案。
按一下「授予存取權」
。將上一個步驟中的預設 Cloud Build 服務帳戶新增為新主體。
在「Select a role」(選取角色) 下拉式選單中搜尋「Cloud Build service account」(Cloud Build 服務帳戶),然後按一下「Cloud Build service account」(Cloud Build 服務帳戶)。
重複上一個步驟,新增其餘角色:
- 服務帳戶使用者
- BigQuery 資料編輯者
- BigQuery 工作使用者
- 記錄寫入者
- Colab Enterprise 管理員 (如要部署 Cortex for Meridian)
- Storage 物件使用者 (如果部署 Cortex for Meridian)
- 工作流程編輯者 (如果部署 Cortex for Meridian)
按一下 [儲存]。
確認 IAM 頁面上列出了服務帳戶和相應的角色。您已成功授予 IAM 角色。
gcloud
請使用下列指令,將角色授予 Cloud Build 服務帳戶:
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/cloudbuild.builds.builder"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/bigquery.dataEditor"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/aiplatform.colabEnterpriseAdmin"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/storage.objectUser"
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
--member="serviceAccount:CLOUD_BUILD_SA" \
--role="roles/workflows.editor"
更改下列內容:
- 將
SOURCE_PROJECT
替換為來源專案 ID。 CLOUD_BUILD_SA
,格式為CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com
。
為 Meridian 建立 Cortex 的額外服務帳戶
部署 Cortex Framework 時,Meridian 需要使用獨立的服務帳戶。如果不是為 Meridian 部署,可以略過這個步驟。 您必須為下列項目建立個別的服務帳戶:
- 執行工作流程和 Cloud Build,觸發 Colab Enterprise 筆記本執行作業。
- 執行可存取下列項目的 Colab Enterprise 筆記本:
- Cloud Storage 中的筆記本和設定檔。
- 查詢相關的 BigQuery 檢視區塊和資料表。
- 將結果寫回 Cloud Storage。
使用下列指令為 Meridian 建立 Cortex 服務帳戶:
gcloud iam service-accounts create cortex-meridian-colab-runner --project= PROJECT_ID \
--description="Cortex for Meridian Colab Runner Service Account" \
--display-name="Cortex Meridian Runner"
更改下列內容:
PROJECT_ID
,其中 Cortex for Meridian 已部署。cortex-meridian-colab-runner
:(選用) 您可以改用其他服務帳戶 ID。請注意,cortex-meridian-colab-runner
是預設值,變更此值可能需要調整其他指令。
Cortex for Meridian 專屬服務帳戶的最低必要角色如下:
- BigQuery 資料檢視者 (
roles/bigquery.dataViewer
) - BigQuery 工作使用者 (
roles/bigquery.jobUser
) - BigQuery 讀取工作階段使用者 (
roles/bigquery.readSessionUser
) - Cloud Build 編輯者 (
roles/cloudbuild.builds.editor
) - Colab Enterprise 管理員 (
roles/aiplatform.colabEnterpriseAdmin
) - 記錄寫入者 (
roles/logging.logWriter
) - 筆記本執行階段管理員 (
aiplatform.notebookRuntimeAdmin
) - 儲存空間管理員 (
roles/storage.admin
) - Storage 物件使用者 (
roles/storage.objectUser
) - Vertex AI Colab 服務代理 (
roles/aiplatform.colabServiceAgent
)
請使用下列指令,將角色授予 Cortex for Meridian 的專屬服務帳戶:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/bigquery.dataViewer'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/bigquery.jobUser'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/bigquery.readSessionUser'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/cloudbuild.builds.editor'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/aiplatform.colabEnterpriseAdmin'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/logging.logWriter'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/aiplatform.notebookRuntimeAdmin'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/storage.admin'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/storage.objectUser'
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
--role='roles/aiplatform.colabServiceAgent'
更改下列內容:
PROJECT_ID
,並換成部署 Cortex for Meridian 的專案 ID。SERVICE_ACCOUNT_EMAIL
,並使用 Cortex for Meridian 服務帳戶。
選用步驟
如要進一步自訂部署作業,請考慮按照下列選用步驟操作:
建立儲存空間 bucket,用於儲存 DAG 相關檔案
您必須使用儲存空間值區,儲存處理 DAG 指令碼和部署期間產生的其他暫存檔案。部署後,這些指令碼必須手動移至 Cloud Composer 或 Apache Airflow 執行個體。
您可以透過 Google Cloud CLI 或 Google Cloud 控制台,按照下列步驟建立儲存空間 bucket。
控制台
前往 Cloud Storage。
在與 BigQuery 資料集相同的區域中建立 bucket。
選取建立的值區。
前往「
Permissions
」分頁。將
Storage Object Creator
權限授予執行建構指令的使用者 ID,或您建立的服務帳戶。詳情請參閱「在值區中設定新條件:主控台」。
gcloud
在 Cloud Shell 中執行下列指令,建立 bucket:
gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
更改下列內容:
- 將
DAG_BUCKET_NAME
替換為新 bucket 的名稱。 REGION/MULTI_REGION
,並與 BigQuery 資料集位於相同區域。
- 將
使用下列指令將
Storage Object Creator
權限指派給服務帳戶:gcloud storage buckets add-iam-policy-binding gs://DAG_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectCreator
更改下列內容:
CLOUD_BUILD_SA
,並使用 Cloud Build 預設服務帳戶。- 將
DAG_BUCKET_NAME
替換為新 bucket 的名稱。
建立記錄檔的儲存空間值區
您可以為 Cloud Build 程序建立特定值區,用來儲存記錄。如果您想限制記錄檔中儲存的資料只能來自特定區域,這項功能就非常實用。您可以透過 Google Cloud CLI 或 Google Cloud 控制台,建立記錄的儲存空間值區。
控制台
如要為記錄建立特定值區,請按照下列步驟操作:
前往 Cloud Storage。
在部署作業執行的相同區域中建立 bucket。
選取建立的值區。
前往「
Permissions
」分頁。將
Storage Object Admin
權限授予執行建構指令的使用者 ID,或您建立的服務帳戶。詳情請參閱「在值區中設定新條件:主控台」。
gcloud
如要為記錄檔建立專屬值區,請使用下列指令。
在 Cloud Shell 中執行下列指令,建立 bucket:
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:CLOUD_BUILD_SA --role=roles/storage.objectAdmin
更改下列內容:
CLOUD_BUILD_SA
,並使用 Cloud Build 預設服務帳戶。- 將
LOGS_BUCKET_NAME
替換為新 bucket 的名稱。
後續步驟
完成這個步驟後,請繼續執行下列部署步驟: