如何在 pub/sub 发布消息上触发 google 作曲家 DAG?

How to trigger a google composer DAG on a pub/sub publish message?

Google 云函数无法用于在 Pub/Sub 消息

上触发作曲家 DAG

我试过 PubSubPullSensor

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

但这并没有像预期的那样触发 DAG

任何帮助在 Pub/Sub 消息上触发 DAG 将不胜感激?

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

我认为最直接的方法是使用云函数,但如果这不可能,第二种选择是使用另一个服务器(它可能是 GCP 中的另一个计算选项:Cloud AppEngine、Cloud 运行, 等) 接收 Pub/Sub 消息并触发 dag。基本上,与 Pub/Sub + Cloud Functions 相同的想法,没有函数。

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

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