Как вызвать google composer DAG в сообщении pub / sub publi sh? - PullRequest
1 голос
/ 08 февраля 2020

Облачная функция Google не может использоваться для запуска сообщения composer DAG при публикации / подписке

Я пробовал PubSubPullSensor

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

, но это не срабатывает, так как DAG как и ожидалось

Любая помощь для запуска DAG на сообщение Pub / Sub будет принята с благодарностью?

1 Ответ

1 голос
/ 08 февраля 2020

PubSubPullSensor является частью DAG. Для того чтобы датчик был запущен, должен быть запущен даг, поэтому он не сработал.

Я думаю, что наиболее строгим подходом будет использование облачных функций, но если это невозможно, Второй вариант - использовать другой сервер (это может быть другой вычислительный параметр в GCP: Cloud AppEngine, Cloud Run и т. д. c.), чтобы получить сообщение Pub / Sub и вызвать dag. По сути, та же идея, что и для функций Pub / Sub + Cloud, без функций.

Если вы не хотите следовать этому подходу и хотите запускать Dag в той же среде Composer, вы можете использовать PubSubPullSensor на бегущую метку и используйте TriggerDagRunOperator при необходимости.

Эта идея может быть использована во многих формах; однако, хитрость заключается в том, что PubSubPullSensor должен выполняться в бегущем виде. Возможное решение для этого - запланировать частое выполнение дамба, например каждые 5 минут

...