Apache Beam 2.1.0增加了对私有子网上的Dataflow运行器提交作业的支持,并且没有公共IP,我们需要这些IP来满足我们的防火墙规则。我计划使用鱿鱼代理来访问apt-get
,pip
等来安装python依赖项;一个代理实例已经在运行,我们在我们的setup.py脚本中设置代理。如何在私有子网上运行Dataflow python?
python $DIR/submit.py \
--runner DataflowRunner \
--no_use_public_ips \
--subnetwork regions/us-central1/subnetworks/$PRIVATESUBNET \
--staging_location $BUCKET/staging \
--temp_location $BUCKET/temp \
--project $PROJECT \
--setup_file $DIR/setup.py \
--job_name $JOB_NAME
当我尝试通过python API运行时,我在启动代理之前在worker-startup期间出错。它看起来对我来说,每个工人首先尝试安装数据流SDK:
,它试图更新requests
和失败时连接到pip
:
的无我的代码已经在这个时候执行了,所以我在设置代理之前无法看到避免这个错误的方法。有没有办法启动私有子网上的数据流python工作?