Идемпотентность в облачной функции Google запускает HTTPS - PullRequest
0 голосов
/ 19 декабря 2018

Большинство сигнатур триггерных функций облачной функции Firebase включают объект контекста, обладающий свойством eventId.

Глядя на документацию, это не относится к HTTPS-триггерам.

Можно ли предположить, что вызовы функций HTTP будут инициироваться только один раз за запрос?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Ответ Джека в основном правильный, но я уточню здесь.

Документация по семантике исполнения находится здесь .Для ясности:

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

Нет гарантии, что функция HTTP будет выполнена точно один раз.Некоторые исполнения могут завершиться неудачей, прежде чем они достигнут функции.Это отличается от всех других (фоновых) типов функций, которые провайдер выполняет хотя бы один раз:

Фоновые функции вызываются как минимум один раз.Это происходит из-за асинхронного характера обработки событий, когда нет вызывающей стороны, которая ожидает ответа и может повторить попытку в случае ошибки.Выпущенное событие вызывает функцию с потенциальными повторными попытками в случае сбоя (если требуется при развертывании функции) и случайными дублирующимися вызовами по другим причинам (даже если повторные попытки в случае сбоя не были запрошены).

Итак, для фоновых функцийчтобы быть на 100% правильными, они должны быть идемпотентными.

Если вы хотите повторить неудачные HTTP-функции, клиент должен будет повторить попытку, и в этом случае вы можете захотеть, чтобы эта HTTP-функция была идемпотентной какЧто ж.В этом случае клиент должен будет предоставить уникальный ключ при повторной попытке.

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

0 голосов
/ 19 декабря 2018

HTTPS-функции сработают только один раз по сравнению с фоновыми функциями, которые имеют хотя бы раз гарантированную доставку.

(Я не могу найти документы, где я их читаю. Если я найду его, я обновлювопрос)

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