您可能需要完成的一项常见任务是将 Dataflow 作业从一个Google Cloud 项目移动到另一个项目。例如,您可能需要将作业从测试环境迁移到生产环境。Dataflow 作业与创建它们的项目相关联,无法直接迁移到其他项目。如需移动作业,您必须先停止旧项目中的作业,然后在新项目中重新创建该作业。
如需移动作业,您需要执行以下操作:
- 在旧项目中停止或排空作业。
- 在新项目中重新创建作业。例如,使用相同的流水线代码、模板和配置。
- 确保在新项目中正确设置了作业所需的所有必要权限、服务账号和资源。包括:
- 权限:确保运行流水线的用户或服务账号在新项目中拥有必要的 Identity and Access Management (IAM) 角色,例如
roles/dataflow.admin和roles/dataflow.worker。 - 服务账号:新项目中的 Dataflow 工作器服务账号将有所不同。确保此新服务账号有权访问流水线所需的所有资源,例如 Cloud Storage 存储桶、BigQuery 数据集和 Pub/Sub 主题。
- 资源:如果您的流水线使用 Cloud Storage 存储桶、BigQuery 数据集或 Pub/Sub 主题等资源,您需要确保这些资源存在于新项目中,或者可以从新项目中访问。您可能需要创建新资源或授予跨项目权限。
- VPC Service Controls:如果您使用的是 VPC Service Controls,请确保新项目属于同一服务边界,或者您已配置必要的网桥以允许访问所需资源。
- 权限:确保运行流水线的用户或服务账号在新项目中拥有必要的 Identity and Access Management (IAM) 角色,例如
重新创建作业时,该作业会作为新作业启动,并且不会保留旧作业的状态。
为避免对项目专用参数(例如项目 ID)进行硬编码,请使用流水线选项将这些值传递到流水线中。
如需详细了解 Dataflow 作业的权限和安全性,请参阅 Dataflow 安全性和权限。