Google cloud storage 如何等待作业完成或文件在数据库中更新

Google cloud storage 如何等待作业完成或文件在数据库中更新,google-cloud-storage,airflow,google-cloud-composer,airflow-operator,gcp-ai-platform-training,Google Cloud Storage,Airflow,Google Cloud Composer,Airflow Operator,Gcp Ai Platform Training,我正在尝试使用ApacheAirflow和GoogleCloudComposer来安排批处理,从而在GoogleAI平台上训练模型。正如我在这个问题中所解释的,我没有使用气流操纵器 使用命令行,我成功地启动了一个作业。 所以现在我的问题是在气流中集成这个命令 使用BashOperator,我可以训练模型,但在创建版本并将其设置为默认版本之前,我需要等待作业完成。此DAG将在作业完成之前创建一个版本 bash\u command\u train=“gcloud ai平台作业提交培训\u作业\u名称

我正在尝试使用ApacheAirflow和GoogleCloudComposer来安排批处理,从而在GoogleAI平台上训练模型。正如我在这个问题中所解释的,我没有使用气流操纵器

使用命令行,我成功地启动了一个作业。 所以现在我的问题是在气流中集成这个命令

使用BashOperator,我可以训练模型,但在创建版本并将其设置为默认版本之前,我需要等待作业完成。此DAG将在作业完成之前创建一个版本

bash\u command\u train=“gcloud ai平台作业提交培训\u作业\u名称”\
“--packages=gs://path/to/the/package.tar.gz”\
“--python版本=3.5--region=europe-west1--runtime版本=1.14”\
“--模块名称=trainer.train--刻度层=自定义--主机类型=n1-highmem-16”
bash\u train\u operator=bash operator(任务\u id='train\u,带有\u bash\u命令',
bash\u命令=bash\u命令列车,
dag=dag,)
...
创建\u version\u op=MLEngineVersionOperator(
task_id='create_version',
project_id=project,
型号名称=型号名称,
版本={
“名称”:版本名称,
“deploymentUri”:导出uri,
“runtimeVersion”:运行时版本,
“Python转换”:“3.5”,
“框架”:“SCIKIT_学习”,
},
操作(创建)
设置\u版本\u默认值\u op=MLEngineVersionOperator(
task_id='set_version_为默认值',
project_id=project,
型号名称=型号名称,
version={'name':version_name},
操作=“设置默认值”)
#为任务排序
bash\u train\u operator>>创建版本操作>>设置版本默认操作
培训结果是更新Gcloud存储中的文件。因此,我正在寻找一个操作员或传感器,它将等待此文件更新,我注意到GoogleCloudStorageObjectUpdatedSensor,但我不知道如何使其在更新此文件之前重试。 另一个解决方案是检查工作是否完成,但我也找不到如何完成

任何帮助都将不胜感激

对于
--流日志
标志:

“阻止,直到作业完成,并在作业运行时对日志进行流式处理。”


将此标志添加到
bash\u command\u train
中,我认为它应该可以解决您的问题。该命令应仅在作业完成后释放,然后将其标记为成功。它还可以让您在气流中监控培训作业的日志。

如果
创建版本操作
任务实例依赖于
bash\u train\u操作符
,则在
bash\u train\u操作符
标记为成功之前,它不应该启动。由于某种原因,第一个作业是否在实际完成之前被标记为成功?任务bash_train_操作员似乎成功了。一旦作业启动,我将用命令行的详细信息编辑问题