演示部署
演示部署 使用预定义的原始 示例数据集提供简化的体验。它提供了一个端到端工作流,用于部署 Cortex Framework Dataform 流水线以进行编排,并使用示例数据初始化相应的 BigQuery 数据集。
准备工作
在继续进行 演示部署之前,请确保已完成 前提条件页面中列出的前提条件。
获取所需的 IAM 角色和权限
获取所需的 Identity and Access Management (IAM) 权限,以便在目标 Google Cloud 项目中部署 Cortex Framework 内容。
目标项目的角色
如需获得部署 Cortex Framework 所需的权限,请让管理员向您授予目标项目的以下 IAM 角色:
- BigQuery Job User (
roles/bigquery.jobUser) - BigQuery Data Editor (
roles/bigquery.dataEditor) - Dataform Admin (
roles/dataform.admin) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
如需向用户授予所请求的角色,您可以使用以下脚本:
# Grant BigQuery JobUser to the user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_EMAIL" \
--role="roles/bigquery.jobUser"
# Grant BigQuery DataEditor to the user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_EMAIL" \
--role="roles/bigquery.dataEditor"
# Grant BigQuery Dataform admin to the user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_EMAIL" \
--role="roles/dataform.admin"
# Grant Service Usage Consumer to the user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_EMAIL" \
--role="roles/serviceusage.serviceUsageConsumer"
可选:使用服务帐号获取演示部署所需的 IAM 角色
只有在启用了可选的 --service_account 参数的情况下,才需要以下角色进行演示部署。提供服务帐号可通过设置数据流水线的时间安排来简化部署后任务。您可以使用三点状菜单在 Dataform 的版本和时间安排 标签页上手动触发此工作流配置。
如需获得部署 Cortex Framework 演示所需的权限,请让管理员向您授予Service Account Token Creator (roles/iam.serviceAccountTokenCreator) IAM 角色,使其拥有源项目和目标项目的权限。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
如需创建服务帐号并授予必要的角色,您可以使用以下脚本:
# Create the service account
gcloud iam service-accounts create cortex-dataform \
--description="Service account for Cortex Dataform execution" \
--display-name="Cortex Dataform Service Account" \
--project=PROJECT_ID
# Wait for the service account to propagate (IAM eventual consistency)
sleep 10
# Grant BigQuery DataEditor to the service account
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:cortex-dataform@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/bigquery.dataEditor"
# Grant BigQuery jobUser to the service account
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:cortex-dataform@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/bigquery.jobUser"
# Grant Dataform Editor to the service account
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:cortex-dataform@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/dataform.editor"
# Grant the user Service Account Token Creator role on the Cortex service account
gcloud iam service-accounts add-iam-policy-binding \
cortex-dataform@PROJECT_ID.iam.gserviceaccount.com \
--member="user:USER_EMAIL" \
--role="roles/iam.serviceAccountTokenCreator" \
--project=PROJECT_ID
PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
## Note: In case the commands below should fail with message:
# "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com" not found