Hi, I'm running a DataFlow job from Cloudshell where pipeline is created with Python. I know why it's failing.
When I run from GUI - I changed 'Worker IP Address Configuration' to 'Private' when I got this error and it worked. When I run from Cloudshell, I gave this option '--disable-public-ips' and another run, I tried with '--usePublicIps false'. Both didn't work and Dataflow job failed with the same error mentioned below. Can someone help me get the equivalent of 'Worker IP Address Configuration' to 'Private' in CMD for Python Dataflow Pipeline Deployment.
python wordcount.py \
--project raj-box \
--job_name myproject-wordcount \
--runner DataflowRunner \
--staging_location gs://rajbox/output/stage \
--input gs://dataflow-samples/shakespeare/kinglear.txt \
--output gs://rajbox/output/rajword.txt \
--region asia-south1 \
--subnetwork https://www.googleapis.com/compute/v1/projects/raj-box/regions/asia-south1/subnetworks/default \
--temp_location gs://rajbox/temp \
--disable-public-ips
Error,
Startup of the worker pool in zone asia-south1-c failed to bring up any of the desired 1 workers. Please refer to https://cloud.google.com/dataflow/docs/guides/common-errors#worker-pool-failure for help troubleshooting. CONDITION_NOT_MET: Instance 'myproject-wordcount-01120421-wkhe-harness-3rkh' creation failed: Constraint constraints/compute.vmExternalIpAccess violated for project 79278007063. Add instance projects/raj-box/zones/asia-south1-c/instances/myproject-wordcount-01120421-wkhe-harness-3rkh to the constraint to use external IP with it.
Solved! Go to Solution.
I searched using Google Search and it does appear confusing ... there appears to be a variety of permutations for the option to switch off public IP addresses. However, I'm going to go with this one since (at this time) this is what is in Google's official documentation:
https://cloud.google.com/dataflow/docs/guides/routes-firewall
In there, we see that the flag to be used is
--no_use_public_ips
Try that instead of --disable-public-ips that you have today. Post back and let us know how you get on.
I searched using Google Search and it does appear confusing ... there appears to be a variety of permutations for the option to switch off public IP addresses. However, I'm going to go with this one since (at this time) this is what is in Google's official documentation:
https://cloud.google.com/dataflow/docs/guides/routes-firewall
In there, we see that the flag to be used is
--no_use_public_ips
Try that instead of --disable-public-ips that you have today. Post back and let us know how you get on.
Thanks Kolban. This is exactly what I was looking for and the flag '--no_use_public_ips' that you have worked fine. Great help from you!!
How this flag can be used for batch templates already available?