Облачные функции GCP, как вызвать все в ведре? - PullRequest
0 голосов
/ 19 февраля 2019

Я играю с облачными функциями Google.Мой первый вывод: они действительно идеальны!Я создал функцию, которая вызывается изменением документа, который хранится в корзине (или новой загрузкой).Это прекрасно работает.

Но потом я начал думать: что если я захочу, чтобы все файлы внутри сегментов выполнялись с использованием НОВОЙ функции.Предыдущие функции уже запущены для всех файлов, поэтому я предпочитаю запускать только НОВУЮ функцию для повторения всех документов.

Как вы, ребята, делаете это?Итак, в основном мои вопросы:

  • Как вы отслеживаете, какие функции уже применены к файлам?
  • Как вы запускаете все файлы для повторного применения всех функций?
  • Как запустить все файлы только для ОДНОЙ (новой) функции?

1 Ответ

0 голосов
/ 19 февраля 2019

Как вы отслеживаете, какие функции уже применены к файлам?

Облачные функции запускают события.Как только событие запускается, вызывается функция Cloud (если она настроена).Ничто в GCP не отслеживает это, за исключением StackDriver.Ваши функции должны будут отслеживать свои действия, в том числе запускаться для какого объекта.

Как вы запускаете все файлы для повторного применения всех функций?

Существуетнет команды или функции для запуска функции для всех файлов.Вам нужно будет реализовать эту функцию самостоятельно.

Как запустить все файлы только для ОДНОЙ (новой) функции?

Нет команды или функции для запускафункция для новой функции.Вам нужно будет реализовать эту функцию самостоятельно.

В зависимости от архитектуры, которую вы пытаетесь реализовать, большинство людей используют базу данных, такую ​​как Cloud Datastore, для отслеживания объектов внутри корзины, происходящих преобразований и результатов.

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

Имейте в виду, что облачные функции имеют тайм-аут после запуска в течение 540 секунд.Это означает, что если у вас есть миллионы файлов, вам потребуется реализовать перекрывающуюся стратегию для обработки такого количества объектов.

В случаях, когда мне нужно обработать миллионы объектов, я обычно запускаю App Engine Flexible или Compute Engine для выполнения больших задач, а затем завершаю работу после завершения.Основная причина - очень высокая пропускная способность для Google Storage и Datastore.

...