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

GCP禁用Cloud NAT场景下Dataflow Worker安装google-cloud-storage方案咨询

无公网环境下Dataflow Worker安装google-cloud-storage的可行方案

你当前的setup.py仅能声明依赖,无公网环境下Worker无法从公共PyPI拉取安装包,你现有编写的setup.py无需调整,配合以下任一方案即可正常生效:

方案1:使用自定义SDK容器镜像(最推荐)

  • 编写Dockerfile,基础镜像选择对应版本的官方Dataflow Python SDK镜像,在镜像构建阶段预安装所有需要的依赖:
# 替换为你使用的Beam版本对应的官方镜像
FROM apache/beam_python3.10_sdk:2.53.0
RUN pip install --no-cache-dir google-cloud-storage
  • 将构建好的镜像推送到项目内的Artifact Registry或Container Registry(GCP内部服务,Worker可通过内网访问)
  • 启动Dataflow任务时添加参数 --sdk_container_image=<你的镜像地址>,Worker将直接使用预装好依赖的镜像启动,无需运行时拉包

方案2:预下载依赖包托管到GCS

  • 本地执行命令下载google-cloud-storage及所有依赖包到本地目录:
pip download google-cloud-storage -d ./gcs_deps
  • 将./gcs_deps目录下所有whl文件上传到项目内的GCS存储桶(Worker默认可通过内网访问GCS)
  • 启动Dataflow任务时添加参数:--extra-packages gs://<你的存储桶路径>/gcs_deps/*.whl,即可完成内网安装

方案3:使用内网私有PyPI服务

  • 在VPC内网部署私有PyPI服务,或使用Artifact Registry的Python制品库,将google-cloud-storage及所有依赖上传到该私有库
  • 启动Dataflow任务时添加参数 --pip_options="--index-url <内网私有PyPI地址> --trusted-host <私有PyPI域名>",即可从内网拉取依赖完成安装

注意事项

  • 需提前梳理清楚google-cloud-storage的所有传递依赖,避免出现依赖缺失导致安装失败的问题
  • 确保Dataflow Worker的服务账号已配置对应资源的访问权限,包括镜像拉取权限、GCS对象读取权限、私有PyPI访问权限等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:45:00