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工作?