将流水线作业迁移到其他 Google Cloud 项目

您可能需要完成的一项常见任务是将 Dataflow 作业从一个Google Cloud 项目移动到另一个项目。例如,您可能需要将作业从测试环境迁移到生产环境。Dataflow 作业与创建它们的项目相关联,无法直接迁移到其他项目。如需移动作业,您必须先停止旧项目中的作业,然后在新项目中重新创建该作业。

如需移动作业,您需要执行以下操作:

  1. 在旧项目中停止或排空作业
  2. 在新项目中重新创建作业。例如,使用相同的流水线代码、模板和配置。
  3. 确保在新项目中正确设置了作业所需的所有必要权限、服务账号和资源。包括:
    • 权限:确保运行流水线的用户或服务账号在新项目中拥有必要的 Identity and Access Management (IAM) 角色,例如 roles/dataflow.adminroles/dataflow.worker
    • 服务账号:新项目中的 Dataflow 工作器服务账号将有所不同。确保此新服务账号有权访问流水线所需的所有资源,例如 Cloud Storage 存储桶、BigQuery 数据集和 Pub/Sub 主题。
    • 资源:如果您的流水线使用 Cloud Storage 存储桶、BigQuery 数据集或 Pub/Sub 主题等资源,您需要确保这些资源存在于新项目中,或者可以从新项目中访问。您可能需要创建新资源或授予跨项目权限。
    • VPC Service Controls:如果您使用的是 VPC Service Controls,请确保新项目属于同一服务边界,或者您已配置必要的网桥以允许访问所需资源。

重新创建作业时,该作业会作为新作业启动,并且不会保留旧作业的状态。

为避免对项目专用参数(例如项目 ID)进行硬编码,请使用流水线选项将这些值传递到流水线中。

如需详细了解 Dataflow 作业的权限和安全性,请参阅 Dataflow 安全性和权限

后续步骤

  • 如需了解开发、部署和管理 Dataflow 流水线的最佳实践,请参阅流水线最佳实践
  • 如需查看在配置新项目后部署流水线的流程,请参阅部署流水线