Я работаю с C# и .NET8. Функция Azure версии 4 У меня есть функция Azure Blob Trigger, работающая без проблем в облаке Azure. Функция обновляется с помощью GitHub Actions из моего репозитория. Когда я хочу добавить новые функции, я тестирую их локально перед развертыванием. Проблема в том, что теперь, когда я запускаю функцию локально, она начинает запускать все изменения больших двоичных объектов, произошедшие с момента ее локального запуска. Обычно это занимает много времени. Когда он, наконец, перестает срабатывать, я запускаю новые изменения, и на их запуск уходит несколько часов.
Раньше это были всего секунды. Как я могу уменьшить эту задержку в триггере?
Как уже упоминалось @Mason A, если вы подключаетесь к той же учетной записи хранения, которая используется в развернутой среде,
Триггер хранилища BLOB-объектов с функциями Azure иногда приводит к задержке выполнения, поскольку триггер опрашивает контейнер BLOB-объектов на наличие обновлений.
Чтобы уменьшить задержку в этих случаях, активируйте функцию, используя подписку на события в том же контейнере.
Обратитесь к статье.
Я протестировал то же самое в своей среде, создав два контейнера в одной учетной записи хранения и смог запустить эту функцию без каких-либо задержек.
Локальный выход:
Azure Functions Core Tools
Core Tools Version: 4.0.5611 Commit hash: N/A +591b8aec842e333a87ea9e23ba390bb5effe0655 (64-bit)
Function Runtime Version: 4.31.1.22191
[2024-04-05T12:45:41.720Z] Found C:\Users\uname\Source\Repos\FunctionApp.csproj. Using for user secrets file configuration.
[2024-04-05T12:46:14.567Z] Azure Functions .NET Worker (PID: 26804) initialized in debug mode. Waiting for debugger to attach...
[2024-04-05T12:46:14.791Z] Worker process started and initialized.
Functions:
Function1: blobTrigger
For detailed output, run func with --verbose flag.
[2024-04-05T12:46:19.651Z] Host lock lease acquired by instance ID '000000000000000000000000F72731CC'.
[2024-04-05T12:46:29.201Z] Executing 'Functions.Function1' (Reason='New blob detected(LogsAndContainerScan): samples-workitems/Hello World.txt', Id=881042fd-f65c-4254-841c-ceb6f414003e)
[2024-04-05T12:46:29.208Z] Trigger Details: MessageId: b377cda0-1de5-4524-8e14-ae735f4fa67b, DequeueCount: 1, InsertedOn: 2024-04-05T12:46:28.000+00:00, BlobCreated: 2024-04-05T12:46:24.000+00:00, BlobLastModified: 2024-04-05T12:46:24.000+00:00
[2024-04-05T12:46:31.849Z] C# Blob trigger function Processed blob
Name: Hello World.txt
Data: Hello World
[2024-04-05T12:46:31.921Z] Executed 'Functions.Function1' (Succeeded, Id=881042fd-f65c-4254-841c-ceb6f414003e, Duration=3164ms)
Похоже, вы подключаетесь к тому же хранилищу BLOB-объектов, которое используется в развернутой среде? Трудно сказать без минимально воспроизводимого образца. Я бы, как минимум, создал отдельный контейнер/ресурс для хранения BLOB-объектов для локального доступа.