Azure Функция запускается несколько раз для одного и того же события хранения BLOB-объектов - PullRequest
0 голосов
/ 21 января 2020

My Python Azure Файл конфигурации функции (function.json) определяет триггер хранилища BLOB-объектов.

Когда функция Azure активируется (т. Е. Сервер, показанный в Live Metrics, становится подключенным через некоторое время время ожидания) обрабатывает все существующие большие двоичные объекты независимо от того, какие из них уже генерировали события триггера.

Я заметил, что папка azure-webjobs-hosts/blobreceipts заполнена папками sandboxhost637nnn. Создается новая папка sandboxhost каждые Azure Событие пробуждения функции . Таким образом, функция забывает ранее обработанные BLOB-объекты (старые чеки не найдены). В прошлом (De c '19) я помню, что уникальная папка webjobs-hosts , содержащая все квитанции, сохранялась при вызовах.

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Я не уверен, что с тобой случилось. Но эта проблема больше не должна возникать.

Это старая проблема. И SDK имеет обновление.

BlobTriggers будут обрабатываться только один раз, посмотрите на это:

https://azure.microsoft.com/zh-cn/blog/announcing-the-0-5-0-beta-preview-of-microsoft-azure-webjobs-sdk/

Возможно, ваша проблема новая. Но вы должны предоставить свои журналы и SDK, которые вы использовали. Тогда мы можем помочь вам решить это. Дайте мне знать, если вы обновите позже.

0 голосов
/ 21 января 2020

Чтобы объяснить, почему это происходит:

Независимо от вашей среды триггер BLOB-объектов по своему дизайну отслеживает новые и обновленные BLOB-объекты, поддерживая поступления BLOB-объектов в azure -webjobs контейнер Эти квитанции соотносятся с их **eTags** до **host ID** времени выполнения ваших функций.

Когда ваша функция активируется, это приведет к изменению вашего **host ID and the eTag->host ID correlations**, которое вы ранее не применяли, что приведет к тому, что новый хост повторно обработает все ваши существующие BLOB-объекты - поведение, которое вы заметила.

Рекомендуется использовать вместо этого триггер таблицы событий или использовать базовый план обслуживания приложения Azure для вашего функционального приложения, которое будет более дорогим.

Дополнительная справка:

https://github.com/Azure/azure-webjobs-sdk/issues/1327

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...