You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dataflow作业运行报错:Worker子网无法被Dataflow服务账号访问

解决Dataflow服务账号无法访问子网的问题

从你提供的报错日志和命令行参数来看,问题主要出在区域不匹配和服务账号权限配置两个方面,下面一步步来解决:

1. 修正子网与作业区域的匹配问题

你的命令行里指定了--region=asia-east1,但子网却是regions/asia-southeast1/subnetworks/SUBNETWORK——Dataflow要求作业的运行区域必须和子网所在区域一致,asia-east1和asia-southeast1是完全独立的GCP区域,无法跨区域使用子网。

你需要做以下二选一:

  • 修改作业的--region参数为asia-southeast1,同时调整--zone为该区域下的可用区(比如asia-southeast1-a)
  • 换成asia-east1区域下的子网,更新--subnetwork参数为对应子网的完整路径

2. 为Dataflow服务账号配置子网访问权限

即使区域匹配了,Dataflow的服务账号也需要拥有子网的访问权限,你需要给服务账号添加Compute Network User(roles/compute.networkUser)角色:

具体操作步骤:

  • 找到你的Dataflow服务账号:通常是[PROJECT_NUMBER]-compute@developer.gserviceaccount.com,如果是自定义服务账号则对应你指定的邮箱
  • 进入GCP控制台的IAM & Admin > IAM页面
  • 找到该服务账号,点击"编辑"按钮
  • 添加角色Compute Network User(属于Compute Engine分类下)
  • 保存更改

或者使用gcloud命令行快速配置:

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member=serviceAccount:[YOUR_SERVICE_ACCOUNT_EMAIL] \
  --role=roles/compute.networkUser

3. 验证配置并重新运行作业

完成上述两步后,重新执行你的Dataflow命令即可。如果仍有报错,可以额外检查:

  • 子网是否确实存在于指定区域下
  • --network参数指定的VPC是否和子网所属VPC一致
  • 服务账号的权限是否已经同步生效

内容的提问来源于stack exchange,提问作者prideloki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:22:05