@firestore_fn.on_document_created ограничение на облачные функции Firebase (2-го поколения)

Я начинающий. и мне жаль, что мой английский не очень хорош.

Я программирую, используя Firestore, облачные функции Firebase (2-го поколения).

Я спрашиваю об ограничении @firestore_fn.on_document_created облачных функций Firebase (2-го поколения).

Вопрос 1.

Нет ли ограничения на количество событий, которые еще не активировали функцию облака?

Например, если существует миллиард событий и один экземпляр облачной функции, все ли события запускают облачную функцию хотя бы один раз, даже если поздно?

Вопрос 2.

Означает ли тайм-аут запроса время от момента, когда событие запускает функцию, до момента, когда она завершает свою миссию?

Или имеется в виду время от момента возникновения события до момента выполнения функции своей миссии?

Спасибо, что прочитали мой вопрос новичка в программе.


54
3

Ответы:

Нет ли ограничения на количество событий, которые еще не запускают облако? функция?

Например, если имеется миллиард событий и один экземпляр облака функция, все ли события запускают функцию облака хотя бы один раз, даже если поздно?

Да, система стремится обрабатывать все события. Некоторые события могут быть отброшены, если их можно обработать по прошествии очень длительного периода времени.

Означает ли тайм-аут запроса время с момента срабатывания события? функцией до момента завершения своей миссии?

Или имеется в виду время от момента возникновения события до момент, когда функция завершает свою миссию?

Тайм-аут относится к количеству времени, затраченному на обработку события на экземпляре сервера, а не с момента первого создания события.


Я спрашиваю об ограничении @firestore_fn.on_document_created облачных функций Firebase (2-го поколения).

Согласно Документации кажется, что одновременно будет обрабатываться только одно событие.

По вопросу 1.

Нет ли ограничения на количество событий, которые еще не активировали функцию облака?

Согласно Документации

Облачные функции обеспечивают хотя бы один раз выполнение функции, управляемой событиями, для каждого события, созданного источником событий. По умолчанию, если вызов функции завершается с ошибкой, функция не вызывается повторно, а событие удаляется.

Для этого вы можете включить повторы для функции, управляемой событиями.

Cloud Functions повторяет неудачный вызов функции до тех пор, пока он не завершится успешно или пока не истечет время повторной попытки. Срок действия этого окна повторной попытки истекает через 24 часа. Облачные функции повторяют вновь созданные функции, управляемые событиями, используя стратегию экспоненциальной задержки с увеличением задержки от 10 до 600 секунд.

Также обязательно установите условие завершения, чтобы избежать бесконечных циклов повторов.

По вопросу 2.

Означает ли тайм-аут запроса время от момента, когда событие запускает функцию, до момента, когда она завершает свою миссию?

Облачные функции второго поколения были созданы на базе облака Google. Параметр таймаута запроса определяет время, в течение которого ответ должен быть возвращен службами, развернутыми в Cloud Run.

Для сервисов Cloud Run параметр таймаута запроса определяет время, в течение которого ответ должен быть возвращен службами, развернутыми в Cloud Run. Если ответ не возвращается в течение указанного времени, запрос завершается и возвращается ошибка 504.


Решено

Я получил ответ от команды Firebase, поэтому оставляю его ниже.

В целом квоты на облачные функции охватывают 3 области:

Ограничения ресурсов. Они влияют на общее количество ресурсов, которые вы можете использовать. функции могут потреблять. Ограничения по времени. Они влияют на то, как долго все может продолжаться. бегать. Ограничения скорости – они влияют на скорость, с которой вы можете звонить API облачных функций для управления вашими функциями. Вопрос 1: Событие Журнал отставания и триггеры – нет жесткого ограничения на количество событий. которые можно поставить в очередь перед запуском облачной функции. Огневая база в конечном итоге попытается обработать все события, даже если имеется большое количество отставание.

Когда вы, например. лимиты скорости превысят, то события не будут удаляться. Если они это сделали, это было бы исключительно плохо, и ваше приложение не шкала.

Установлены ограничения скорости, чтобы предотвратить запуск массового обновления. потенциально миллионы экземпляров одновременно. Вместо этого Облако Функции будут ограничивать максимальное количество одновременных вызовов и заставить все события пройти через этот максимум вместо того, чтобы пытаться обрабатывать их все одновременно. События будут обработаны максимально быстро поскольку ваша функция может с ними справиться, в пределах этого одновременного максимума. Подробнее → здесь.

Вопрос 2: Тайм-аут запроса. Тайм-аут запроса относится к времени с момента, когда событие запускает вашу облачную функцию, до момента функция завершает свое выполнение.

Тайм-аут по умолчанию для облачных функций составляет 60 секунд. Ты можешь настройте это значение до 540 секунд (9 минут) в консоли Firebase. Если ваша функция превысит таймаут, она будет завершена, и все незавершенная работа будет потеряна.

Важное соображение – из-за доставки «хотя бы один раз». гарантии, крайне важно спроектировать облачные функции так, чтобы они были идемпотент. Это означает, что если функция запускается несколько раз для одного и того же события оно должно давать тот же результат, не вызывая непредвиденные побочные эффекты.

Хотя Firebase в конечном итоге попытается обработать все события, это важно знать о возможных задержках и планировать свои Облачные функции для корректной обработки таких ситуаций.