我有两个要运行的脚本,function_1
和function_2
,其中function_2
必须在成功执行function_1
之后才能运行。
为了在GCP上做到这一点,我将每个脚本转换为一个云函数,我将其设置为由Pub/Sub触发,这是GCP中的标准。假设我想使用Composer来安排这些函数。由于没有用于执行云函数的运算符,我必须使用Pub/Sub运算符向我的主题发送消息,该主题将依次执行该函数。
这是我的问题:是否可以让Composer中function_2
的触发器仅在function_1
成功运行后执行?由于我的DAG任务不是执行函数,而是向Pub/Sub发送消息(Pub/Sub反过来运行函数(,我不明白如何在上游函数完全执行后而不是在发送Pub/Sub消息时运行function_2
。
在Airflow 1.10.1版本中,Google Cloud Functions Operator发布,这将解决问题,无需使用Pub/Sub。
假设您正在运行<气流1.10.1,使用http_operator是解决方法,从GCF返回状态。
参考:
https://airflow.apache.org/docs/stable/howto/operator/gcp/function.html
https://airflow.apache.org/docs/stable/_api/airflow/operators/http_operator/index.html#module-airflow.operators.http_operator