第 4 步:设置组件
本页介绍了部署 Cortex Framework 核心组件 Cortex Framework Data Foundation 的第四步。在此步骤中,您将设置要部署的所需Google Cloud 服务。
在本部分中,您将在Google Cloud 项目中启用以下 Google Cloud 服务:
- BigQuery 实例和数据集
- Cloud Build API
- Cloud Storage 存储分区
- 服务账号(可选)
- Cloud Resource Manager API
使用 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
将
SOURCE_PROJECT
替换为您的来源项目 ID。如果您收到成功消息,请确保 Google Cloud 服务已启用。
可选。您可以在Google Cloud 项目中启用以下 Google Cloud 服务:
- Cloud Composer,用于通过有向无环图 (DAG) 进行变更数据捕获 (CDC) 处理、层次结构扁平化(仅限 SAP)和数据复制(仅限非 SAP)。如需设置实例,请参阅 Cloud Composer 文档。
- Looker,用于连接到报告模板。
- Analytics Hub 关联数据集适用于某些外部来源,例如 Weather DAG。对于高级场景,您可以选择使用任何其他可用来源来填充此结构。
- Dataflow:适用于许多营销数据集(例如 Google Ads)的集成工具。
- Dataplex:用于构建数据网格。如需了解详情,请参阅数据网格用户指南。
向执行用户授予权限
如需在触发 Cloud Build 的项目中执行部署,请向执行用户授予以下权限:
- Service Usage Consumer
- 适用于 Cloud Build 默认存储分区或日志存储分区的 Storage Object Viewer
- 输出存储分区的对象写入器
- Cloud Build Editor
- Project Viewer 或 Storage Object Viewer
如需详细了解如何授予这些权限,请参阅以下文档:
配置 Cloud Build 账号
Cloud Build 使用服务账号代表您执行构建。请按照以下步骤授予 Cloud Build 服务账号部署 Cortex Framework 的权限。
如需向 Cloud Build 服务账号授予部署 Cortex Framework 的权限,请使用以下命令。
打开 Cloud Shell 并执行以下命令,找到默认的 Cloud Build 服务账号:
gcloud builds get-default-service-account --project PROJECT_ID
收到格式为以下任一形式的响应:
# Response one `serviceAccountEmail: projects/PROJECT_NUMBER/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com` # Response two `serviceAccountEmail: projects/PROJECT_NUMBER/serviceAccounts/PROJECT_NUMBER@cloudbuild.gserviceaccount.com`
其中
PROJECT_NUMBER
会替换为您的项目编号。之前的任一服务账号电子邮件地址都是您的默认 Cloud Build 服务账号。在 IAM 中查看
@developer.gserviceaccount.com
账号或@cloudbuild.gserviceaccount.com
账号,找到此服务账号。通过控制台或 Google Cloud CLI 向源项目(以及部署到单独目标的目标项目)中的 Cloud Build 服务账号授予以下权限:
- Cloud Build 服务账号 (
roles/cloudbuild.builds.builder
) - Service Account User (
roles/iam.serviceAccountUser
) - BigQuery Data Editor (
roles/bigquery.dataEditor
) BigQuery Job User (
roles/bigquery.jobUser
)
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
选择您的源项目。
点击
授予访问权限。将上一步中的默认 Cloud Build 服务账号添加为新主账号。
在选择角色下拉菜单中,搜索 Cloud Build 服务账号,然后点击 Cloud Build 服务账号。
重复上一步,添加其余权限:服务账号用户、BigQuery Data Editor 和 BigQuery Job User。
点击保存。
验证服务账号和对应的角色是否在 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"
将命令中的占位值替换为以下内容:
- 将
SOURCE_PROJECT
替换为来源项目 ID。 CLOUD_BUILD_SA
与 Cloud Build 默认服务账号。
如需了解详情,请参阅使用 IAM 页面向 Cloud Build 服务账号授予角色和设置和管理存储分区的 IAM 政策。
- Cloud Build 服务账号 (
可选步骤
如需更好地自定义部署,请考虑按照以下可选步骤操作:
- 数据网格:如果您需要修改数据网格的默认值,以实现超出说明的功能,请参阅数据网格概念和数据网格用户指南。
- 用于部署的服务账号:如果您需要增强安全性、简化部署流程并提高可审核性,请参阅创建用于部署的服务账号。
创建一个存储分区来存储与 DAG 相关的文件
您需要存储分区来存储处理 DAG 脚本和部署期间生成的其他临时文件。部署后,需要手动将这些脚本移至 Cloud Composer 或 Apache Airflow 实例中。
您可以按照以下步骤通过 Google Cloud CLI 或 Google Cloud 控制台创建存储分区。
控制台
转到 Cloud Storage。
在与 BigQuery 数据集位于同一区域的位置创建存储分区。
选择创建的存储分区。
前往
Permissions
标签页。向执行 build 命令的用户 ID 或您创建的服务账号授予
Storage Object Creator
权限。如需了解详情,请参阅为存储分区设置新条件:控制台。
gcloud
使用以下命令从 Cloud Shell 创建存储分区:
gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
替换以下内容:
- 将
DAG_BUCKET_NAME
替换为新存储分区的名称。 REGION/MULTI_REGION
与 BigQuery 数据集位于同一区域。
- 将
使用以下命令向服务账号分配
Storage Object Creator
权限:gsutil iam ch serviceAccount:CLOUD_BUILD_SA:roles/storage.objectCreator gs://DAG_BUCKET_NAME
替换以下内容:
CLOUD_BUILD_SA
使用 Cloud Build 默认服务账号。- 将
DAG_BUCKET_NAME
替换为新存储分区的名称。
为日志创建一个存储分区
您可以为 Cloud Build 进程创建一个特定存储分区来存储日志。如果您想将可能存储在日志中的数据限制在特定区域,这项功能非常有用。您可以使用 Google Cloud CLI 或 Google Cloud 控制台为日志创建存储分区。
控制台
如需为日志创建特定存储分区,请按以下步骤操作:
转到 Cloud Storage。
在部署将要运行的区域中创建一个存储分区。
选择创建的存储分区。
前往
Permissions
标签页。向执行 build 命令的用户 ID 或您创建的服务账号授予
Storage Object Admin
权限。如需了解详情,请参阅为存储分区设置新条件:控制台。
gcloud
如需为日志创建特定存储分区,请使用以下命令。
使用以下命令从 Cloud Shell 创建存储分区:
gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
替换以下内容:
REGION/MULTI_REGION
并指定所选区域以创建存储分区。- 将
LOGS_BUCKET_NAME
替换为新存储分区的名称。
使用以下命令向服务账号分配
Storage Object Admin
权限:gsutil iam ch serviceAccount:CLOUD_BUILD_SA:roles/storage.objectAdmin gs://LOGS_BUCKET_NAME
替换以下内容:
CLOUD_BUILD_SA
使用 Cloud Build 默认服务账号。- 将
LOGS_BUCKET_NAME
替换为新存储分区的名称。
后续步骤
完成此步骤后,请继续执行以下部署步骤: