第 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 服务:

  1. 复制并粘贴以下命令:

    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。

  2. 如果您收到成功消息,请确保 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 的权限,请使用以下命令。

  1. 打开 Cloud Shell 并执行以下命令,找到默认的 Cloud Build 服务账号:

    gcloud builds get-default-service-account --project PROJECT_ID
    
  2. 收到格式为以下任一形式的响应:

    # 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 服务账号。

  3. IAM 中查看 @developer.gserviceaccount.com 账号或 @cloudbuild.gserviceaccount.com 账号,找到此服务账号。

  4. 通过控制台或 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)

    控制台

    1. 在 Google Cloud 控制台中,转到 IAM 页面。

      转到 IAM

    2. 选择您的源项目。

    3. 点击 授予访问权限

    4. 将上一步中的默认 Cloud Build 服务账号添加为新主账号。

    5. 选择角色下拉菜单中,搜索 Cloud Build 服务账号,然后点击 Cloud Build 服务账号

    6. 重复上一步,添加其余权限:服务账号用户BigQuery Data EditorBigQuery Job User

    7. 点击保存

    8. 验证服务账号和对应的角色是否在 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 政策

可选步骤

如需更好地自定义部署,请考虑按照以下可选步骤操作:

您需要存储分区来存储处理 DAG 脚本和部署期间生成的其他临时文件。部署后,需要手动将这些脚本移至 Cloud Composer 或 Apache Airflow 实例中。

您可以按照以下步骤通过 Google Cloud CLI 或 Google Cloud 控制台创建存储分区。

控制台

  1. 转到 Cloud Storage。

    Cloud Storage

  2. 在与 BigQuery 数据集位于同一区域的位置创建存储分区。

  3. 选择创建的存储分区。

  4. 前往 Permissions 标签页。

  5. 向执行 build 命令的用户 ID 或您创建的服务账号授予 Storage Object Creator 权限。如需了解详情,请参阅为存储分区设置新条件:控制台

gcloud

  1. 使用以下命令从 Cloud Shell 创建存储分区:

    gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
    

    替换以下内容:

    • DAG_BUCKET_NAME 替换为新存储分区的名称。
    • REGION/MULTI_REGION 与 BigQuery 数据集位于同一区域。
  2. 使用以下命令向服务账号分配 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 控制台为日志创建存储分区。

控制台

如需为日志创建特定存储分区,请按以下步骤操作:

  1. 转到 Cloud Storage。

    Cloud Storage

  2. 在部署将要运行的区域中创建一个存储分区。

  3. 选择创建的存储分区。

  4. 前往 Permissions 标签页。

  5. 向执行 build 命令的用户 ID 或您创建的服务账号授予 Storage Object Admin 权限。如需了解详情,请参阅为存储分区设置新条件:控制台

gcloud

如需为日志创建特定存储分区,请使用以下命令。

  1. 使用以下命令从 Cloud Shell 创建存储分区:

    gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
    

    替换以下内容:

    • REGION/MULTI_REGION 并指定所选区域以创建存储分区。
    • LOGS_BUCKET_NAME 替换为新存储分区的名称。
  2. 使用以下命令向服务账号分配 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 替换为新存储分区的名称。

后续步骤

完成此步骤后,请继续执行以下部署步骤:

  1. 建立工作负载
  2. 克隆代码库
  3. 确定集成机制
  4. 设置组件(此页面)。
  5. 配置部署
  6. 执行部署