如何在发布/订阅发布消息上触发Google Composer DAG?

时间:2020-02-08 15:32:37

标签: google-cloud-platform airflow google-cloud-pubsub google-cloud-composer

Google云功能不能用于在发布/订阅消息上触发作曲者DAG

我已经尝试过PubSubPullSensor

pull_messages = PubSubPullSensor(
    task_id="pull_messages",
    ack_messages=True,
    project='xxxx',
    subscription='xxxx',
)

但这不会触发,如预期的那样,DAG

在发布/订阅消息上触发DAG的任何帮助将不胜感激?

1 个答案:

答案 0 :(得分:1)

PubSubPullSensor是DAG的一部分。 dag需要运行才能执行传感器,这就是为什么它不起作用。

我认为最直接的方法是使用云功能,但是如果不可能,第二个选择是使用另一台服务器(它可能是GCP中的另一个计算选项:Cloud AppEngine,Cloud Run等)。 )以接收发布/订阅消息并触发dag。基本上,与发布/订阅+云功能相同,但没有功能。

如果您不想遵循这种方法,并且想在同一Composer环境中触发Dag,则可以在运行的dag上使用PubSubPullSensor,并在需要时使用TriggerDagRunOperator

这个想法可以以多种形式使用;但是,棘手的事情是PubSubPullSensor需要在运行的dag中执行。一个可能的解决方案是安排dag经常运行,例如every 5 minutes