Я развертываю службу gRPC в Cloud Run, и эта служба устанавливает двунаправленный поток с клиентом и должна работать долго. Я вижу, что если я не решу всегда выделять свои экземпляры, модель ценообразования Cloud Run основана на запросах. Частью этого расчета, по-видимому, является время выполнения каждого запроса. Я искал это, но мне неясно, считается ли долгоживущий поток gRPC запущенным выполнением. То есть, взимается ли с меня плата за длительный поток gRPC на протяжении всего этого потока? Или поток прозрачен для GCP, и с меня взимается плата только за каждое сообщение, отправленное внутри потока?
Только представьте, какая модель ценообразования у Google: когда вы используете ресурс, вы платите за него.
Имея это в виду, вы можете определить цену Cloud Run: когда вы обрабатываете запрос, вы используете ЦП для его обработки, вне запроса ЦП регулируется (чтобы вы могли использовать его для другой рабочей нагрузки).
Теперь подумайте о потоковом соединении: вам необходимо поддерживать туннель и связь, чтобы иметь возможность осуществлять потоковую передачу в двух направлениях. Следовательно, вы должны поддерживать работу процессора, чтобы справиться с этим. И, следовательно, вы будете платить полную стоимость, пока ваш потоковый канал открыт.
Конечно, если один и тот же экземпляр может одновременно управлять несколькими потоковыми каналами, вы платите только за ресурс экземпляра. Однако если вы установите для параллелизма значение 1, чтобы обрабатывать только 1 запрос на экземпляр, вы увеличите стоимость.