GCP Pub / Sub дважды вызывает функцию Cloud - PullRequest
1 голос
/ 20 июня 2019

У меня есть облачная функция Google, подписанная на тему. Наш API Go публикует сообщение в теме, когда пользователю необходимо отправить электронное письмо. GCF создает объект электронной почты и отправляет его в Sendgrid. Проблема в том, что в 90% случаев облачные функции вызываются дважды.

Крайний срок подтверждения подписки: 600 секунд , и в Документах четко указано, что GCF признает это внутренне.

Я понимаю, что PubSub гарантирует по крайней мере один раз доставку и GCF по крайней мере один раз выполнение для фоновых функций. Но, тем не менее, это происходит в большинстве случаев, я уверен, что это тоже неправильно.

Я на 100% уверен, что не наш API отправляет 2 сообщения. Облачная функция запускается дважды, даже когда я вручную публикую сообщение с консоли GCP для тестирования.

This is the GCF log:

Так что execution_id то же самое. Оба исполнения занимают менее 1 секунды.

Так что я не уверен, что происходит, кто ответственен за это дублирование?

Полагаю, это GCF, поскольку оба выполнения имеют одинаковый идентификатор?

У кого-нибудь есть идеи как это исправить?

1 Ответ

1 голос
/ 01 июля 2019

Я встретил почти такую ​​же ситуацию.Я исправил это, удалив записи Cloud Functions и Cloud Pub / Sub, а затем воссоздав их.Кажется, до сих пор работает нормально.

...