Все зависит от вашего варианта использования и скорости передачи данных.
- В случае редких данных, публикуемых в теме PubSub, облачная функция работает хорошо и почти ничего не стоит
- В случаеустойчивый трафик, вы должны заботиться о своем времени обработки. Простой поток данных будет стоить всего 1vm (основной vm, n1-standard-1). Стоимость часа облачных функций дороже, чем 1vm вверх (n1-standard-1). В случае одновременного сообщения, несколько экземпляров будут порождены, и это увеличит стоимость обработки.
Вы также должны принять во внимание легкость развертывания функции (в противоположность потоку данных, где вам нужно опустошить свой конвейер, остановить и перезапустить его) и возможность делать гораздо больше. (и в течение более длительного периода времени) с потоком данных (вы ограничены в возможностях обработки с функцией, и продолжительность обработки каждого сообщения не может превышать 9 минут).
В зависимости от перспективы вашего проекта, одно или другое решение может быть лучше.
В качестве бонуса у меня есть третий вариант: Cloud Run. Cloud Run почти так же просто, как и функция обновления и развертывания, продолжительность обработки немного больше (15 минут на сообщение), и вы можете обрабатывать несколько сообщений в одном экземпляре, и, таким образом, цены могут быть гораздо интереснее, чем сфункция из-за этой факторизации. Если вам интересно, посмотрите эту статью, которую я написал