У меня есть облачная функция Google, подписанная на тему. Наш API Go публикует сообщение в теме, когда пользователю необходимо отправить электронное письмо. GCF создает объект электронной почты и отправляет его в Sendgrid. Проблема в том, что в 90% случаев облачные функции вызываются дважды.
Крайний срок подтверждения подписки: 600 секунд , и в Документах четко указано, что GCF признает это внутренне.
Я понимаю, что PubSub гарантирует по крайней мере один раз доставку и GCF по крайней мере один раз выполнение для фоновых функций. Но, тем не менее, это происходит в большинстве случаев, я уверен, что это тоже неправильно.
Я на 100% уверен, что не наш API отправляет 2 сообщения. Облачная функция запускается дважды, даже когда я вручную публикую сообщение с консоли GCP для тестирования.
Так что execution_id
то же самое. Оба исполнения занимают менее 1 секунды.
Так что я не уверен, что происходит, кто ответственен за это дублирование?
Полагаю, это GCF, поскольку оба выполнения имеют одинаковый идентификатор?
У кого-нибудь есть идеи как это исправить?