使用gcloud cli执行数据流作业时出现“无法识别的参数”错误

时间:2019-09-13 14:08:57

标签: google-cloud-dataflow

我已经在Dataflow UI中创建了一个作业,并且工作正常。现在,我想使用一个小的bash脚本从命令行将其自动化:

#GLOBAL VARIABLES
export PROJECT="cf-businessintelligence"
export GCS_LOCATION="gs://dataflow-templates/latest/Jdbc_to_BigQuery"
export MAX_WORKERS="15"
export NETWORK="businessintelligence"
export REGION_ID="us-central1"
export STAGING_LOCATION="gs://dataflow_temporary_directory/temp_dir"
export SUBNETWORK="bidw-dataflow-usc1"
export WORKER_MACHINE_TYPE="n1-standard-96"
export ZONE="us-central1-a"
export JOBNAME="test"

#COMMAND
gcloud dataflow jobs run $JOBNAME --project=$PROJECT --gcs-location=$GCS_LOCATION \
--max-workers=$MAX_WORKERS \
--network=$NETWORK \
--parameters ^:^query="select current_date":connectionURL="jdbc:mysql://mysqldbhost:3306/bidw":user="xyz",password="abc":driverClassName="com.mysql.jdbc.Driver":driverJars="gs://jdbc_drivers/mysql-connector-java-8.0.16.jar":outputTable="cf-businessintelligence:bidw.mytest":tempLocation="gs://dataflow_temporary_directory/tmp" \
--region=$REGION_ID \
--staging-location=$STAGING_LOCATION \
--subnetwork=$SUBNETWORK \
--worker-machine-type=$WORKER_MACHINE_TYPE \
--zone=$ZONE

当我运行它时,它失败并显示以下错误:

ERROR: (gcloud.dataflow.jobs.run) unrecognized arguments:
  --network=businessintelligence

按照gcloud topic escaping中的说明进行操作,我相信我正确地转义了参数,因此我感到非常困惑。为什么NETWORK参数失败?

1 个答案:

答案 0 :(得分:0)

尝试获取命令帮助,以查看命令当前接受的选项:

gcloud dataflow jobs run --help

对我来说,这会显示许多选项,但不会显示--network选项。


然后我检查了beta频道:

gcloud beta dataflow jobs run --help

确实显示--network选项。因此,您将要使用gcloud beta dataflow...来开始工作。