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

Dataflow Flex模板启动失败:Pip安装遇网络不可达错误

问题核心

启动Google Cloud Dataflow Flex模板时,管道图生成阶段触发Pip下载依赖的操作,因网络不可达引发NewConnectionError,最终导致subprocess.CalledProcessError(Pip返回非零状态码1)。

排查步骤
  • 检查Dataflow工作节点的VPC网络:确认工作节点所在子网是否有对外访问权限,防火墙规则是否阻断了到PyPI源(如pypi.org:443)的出站流量
  • 测试依赖下载可行性:在同VPC的虚拟机上执行pip install -r requirements.txt,验证是否能正常拉取依赖,排除源本身故障
  • 核对模板网络配置:确认Flex模板构建/启动时是否指定了正确的VPC/子网,是否开启了Private Google Access(针对无公网IP的节点)
  • 检查代理设置:如果环境使用代理,确认Dataflow工作节点是否继承了正确的代理配置,避免因代理缺失导致网络不通
解决方法
  • 开放出站网络权限:在VPC防火墙中添加规则,允许工作节点向pypi.org的443端口发起出站请求;测试环境可直接允许所有HTTPS出站流量
  • 切换内部PyPI源:如果VPC限制公网访问,搭建内部PyPI镜像,修改requirements.txt或在启动模板时添加--extra-index-url <内部源地址>参数,指定从内部源拉取依赖
  • 启用Private Google Access:若工作节点使用无公网IP的子网,开启该子网的Private Google Access,让节点通过Google内部网络访问PyPI服务
  • 预安装依赖到模板镜像:构建Flex模板的Docker镜像时,在Dockerfile中提前执行pip install -r requirements.txt,把依赖打包进镜像,彻底避免运行时动态下载依赖的网络问题
相关信息示例

核心错误日志:
subprocess.CalledProcessError: Command '['pip', 'install', '-r', '/tmp/requirements.txt']' returned non-zero exit status 1.
NewConnectionError: Failed to establish a new connection: [Errno 113] No route to host

requirements.txt配置示例:
apache-beam[gcp]2.46.0
pandas
2.0.3

模板构建命令示例:

gcloud dataflow flex-template build gs://your-bucket/templates/flex-template.json \
  --image-gcr-path gcr.io/your-project/dataflow-template:latest \
  --sdk-language PYTHON \
  --flex-template-base-image PYTHON39 \
  --metadata-file metadata.json \
  --requirements-file requirements.txt

模板运行命令示例:

gcloud dataflow flex-template run "job-name" \
  --template-file-gcs-location gs://your-bucket/templates/flex-template.json \
  --region us-central1 \
  --service-account-email your-service-account@your-project.iam.gserviceaccount.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:05:07