Вы можете использовать Cloud Composer (Airflow) и по-прежнему повторно использовать большинство существующих настроек.
Во-первых, вы можете сохранить все существующие облачные функции и использовать HTTP-триггеры (или другие, которые вы предпочитаете) для запуска их в Airflow. Единственное изменение, которое вам нужно будет сделать, - внедрить датчик PubSub в Airflow, чтобы он запускал ваши облачные функции (следовательно, вы можете контролировать оркестровку от начала до конца вашего процесса).
Вашим решением будет Airflow DAG , который запускает облачные функции на основе сообщений PubSub, сообщает Airflow, если функции были успешными, а затем, если обе были успешными, запускает третью Облачная функция с HTTP-триггером или аналогичным, точно такая же.
Последнее замечание, которое не является интуитивно понятным. Воздушный поток не предназначен для запуска самих заданий, он предназначен для организации и управления зависимостями. Тот факт, что вы используете облачные функции, запускаемые Airflow, не является анти-паттерном, на самом деле это лучшая практика.
В вашем случае вы могли бы на 100% переписать несколько вещей и использовать операторы BigQuery, так как вы не выполняете никакой обработки, просто запускаете запросы / задания, но концепция остается верной, лучшая практика - используя Airflow, чтобы убедиться, что все происходит, когда и в нужном вам порядке, а не обрабатывать эти вещи самостоятельно. (Надеюсь, это имело смысл)