Запустите Google Cloud Function для каждого файла в корзине - PullRequest
0 голосов
/ 26 июня 2018

У меня есть облачная функция Google, запущенная событием облачного хранилища Google object.finalize.При развертывании новой версии этой функции я хотел бы запускать ее для каждого существующего файла в корзине (который уже был обработан предыдущей версией функции).Обработка всех существующих файлов в корзине - длительная задача, поэтому я не думаю, что облачная функция Google, которая будет обрабатывать все файлы подряд, - это вариант.

Лучший вариант, который я пока вижусоздать облачную функцию Google, которую я могу запустить через HTTP, которая перечислит все файлы в корзине и опубликует одно событие на файл через Google PubSub, а затем обработает каждое из этих событий с помощью слегка измененной версии моей первоначальной облачной функции Google, котораяпринимает событие PubSub вместо события хранения object.finalize.

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

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Одним из вариантов может быть написание небольшой программы, которая перечисляет все объекты в корзине и для каждого объекта отправляет сообщение в Cloud Pub / Sub, которое запускает вашу функцию так же, как и при изменении GCS.

0 голосов
/ 26 июня 2018

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

...