Облачная функция Google, запускаемая событиями базы данных Firebase в реальном времени - PullRequest
0 голосов
/ 26 февраля 2020

Очевидно, что некоторые из событий onCreate / onDelete, которые запускает наша облачная функция, принимаются более одного раза! Мы наблюдали, как они доходили даже 3 раза по несколько секунд друг от друга, распространяясь между экземплярами функции облака. Это нормальное поведение или мы что-то не так делаем?

1 Ответ

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

Посмотрите на содержание этой "Группы Google Firebase" пост , которое я вставил ниже. Он был написан в августе 2018 года, но все еще полностью действителен на момент написания этого «ответа копирования / вставки».

Облачные функции обычно гарантируют, что ваши функции выполняются «хотя бы один раз», а это означает, что очень возможно (но обычно редко), что событие может доставляться в вашу функцию более одного раза. Чтобы справиться с этим, ваши функции должны быть «идемпотентными», что означает, что получение одного и того же события несколько раз не должно приводить к дальнейшим изменениям того, что вам нужно обновить. Это может быть довольно сложно, но это одно из свойств безсерверных систем, с которыми необходимо иметь дело, если оно проблематично c для вашего приложения.

https://cloud.google.com/functions/docs/bestpractices/tips#write_idempotent_functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...