gpt4 book ai didi

python - 如何在私有(private)子网上运行Dataflow python?

转载 作者:行者123 更新时间:2023-12-02 01:36:31 25 4
gpt4 key购买 nike

Apache Beam 2.1.0 添加了对在私有(private)子网上的 Dataflow 运行器上提交作业且无需公共(public) IP 的支持,这是我们需要满足防火墙规则的。我计划使用squid代理访问apt-get、pip等来安装python依赖项;代理实例已经在运行,我们在 setup.py 脚本中设置代理。

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 运行时,我在工作启动期间出错,然后才有机会启用代理。在我看来,每个工作人员首先尝试安装数据流 sdk:

install_dataflow_sdk

在此期间,它尝试更新请求,但无法连接到pip:

enter image description here

此时我的代码尚未执行,因此在设置代理之前我找不到避免此错误的方法。有没有办法在私有(private)子网上启动数据流Python工作程序?

最佳答案

我设法使用 NAT 网关而不是代理解决了这个问题。按照 special configurations 下的说明进行操作- 我必须编辑步骤之一以通过网关自动路由数据流工作实例:

gcloud compute routes create no-ip-internet-route --network my-network \
--destination-range 0.0.0.0/0 \
--next-hop-instance nat-gateway \
--next-hop-instance-zone us-central1-a \
--tags dataflow --priority 800

我使用了标签 dataflow 而不是 no-ip,后者是所有 Dataflow Worker 的网络标签。

在这种情况下,NAT 网关似乎是比代理更简单的解决方案,因为它无需配置工作人员即可路由流量。

关于python - 如何在私有(private)子网上运行Dataflow python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com