Синхронизация BLOB-объектов Azure иногда занимает слишком много времени для запуска - PullRequest
3 голосов
/ 19 апреля 2019

Я использую план обслуживания приложения для функции Azure и добавил триггеры BLOB-объектов, но когда какой-либо файл загружается в контейнер BLOB-объектов, функции не запускаются. Или иногда это занимает слишком много времени, затем после запуска запуска.Мы будем благодарны за любые предложения

. Эта функция должна запускаться при загрузке новых файлов в контейнер BLOB-объектов.

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Поскольку вы говорите, что уже выполняете функции в плане службы приложений, вероятно, у вас не включена настройка Always On.Вы можете сделать это на вкладке Application Settings -> General Settings на портале:

Enable Always On

Еще одна возможная причина - это если вы не удалите капли изконтейнер после обработки.

Отсюда:

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

А при использовании плана потребления есть еще одна ссылка , предупреждающая о возможности задержек.

1 голос
/ 19 апреля 2019

Это должно быть в случае холодный запуск

Согласно примечанию здесь

Когда вы используете триггер BLOB-объекта в плане потребления, может быть до 10-минутной задержки при обработке новых BLOB-объектов.Эта задержка происходит, когда приложение-функция бездействует.После запуска приложения функции капли обрабатываются немедленно.Чтобы избежать этой задержки холодного запуска, используйте план службы приложений с включенным Always On или используйте триггер Event Grid.

В вашем случае вам нужно рассмотреть триггер Event-Grid вместо BLOB-объектатриггер, триггер события также имеет встроенную поддержку BLOB-событий.

...