Приложение-функция Azure не запускается после публикации - PullRequest
0 голосов
/ 07 июня 2018

В Azure я разработал функцию (служба приложений), которая запускается, когда новые CSV-файлы помещаются в определенную учетную запись хранения.Эта функция была разработана в Azure и без проблем работает каждый раз при загрузке нового CSV-файла.Однако, имея в виду CI / CD, я решил перенести процесс разработки с Azure на Visual Studio (2017).

Код выполняется без проблем локально, но как только я опубликую код в Azure (через VSTS), начинается проблема.Похоже, что триггер не активируется при загрузке новых CSV-файлов в учетную запись хранения.Кстати, функция сработала, но я не смог точно определить, почему это так, или воссоздать ее.

Чтобы сделать проблему более понятной, я сократил свой код до всего лишь Blobtrigger и некоторой регистрации.Также я удалил сборку в VSTS и напрямую опубликовал свою сборку через Visual Studio 2017, но с похожими результатами.Код работает локально, но после публикации функция не срабатывает (или делает это очень случайно).

Я использовал код:

using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;

namespace TestApp
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([BlobTrigger("csv-files-in/{name}.csv", Connection = "AzureWebJobsStorage")]Stream myBlob, string name, TraceWriter log)
        {
            log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
        }
    }
}

«AzureWebJobsStorage» относится кlocal.settings.json, где определена конечная точка Blobstorage.Этот параметр автоматически развертывается в Azure, но даже если я установлю это соединение вручную, функция не сработает.После многих попыток решить это самостоятельно я решил обратиться к умным людям на этом сайте за советом.Это ошибка или я что-то упустил?Что я могу сделать, чтобы моя функция (надежно) сработала после публикации этого в Azure?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

У меня была эта проблема с триггерной функцией Azure Service Bus, и я смог ее найти, просмотрев журналы функций в Storage Explorer.В моем случае это был неверно названный параметр, который вызывал проблему.

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

Возможно, вы нажали:

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

Получено из Привязки хранилища BLOB-объектов Azure для функций Azure

Альтернативное решение для запуска функции - использование Сетка событий .

Редактировать:
Также обратите внимание, что BlobTrigger является триггером опроса.Чем дольше он не находит никаких изменений, тем больше периодов между опросами.Это дает вам некоторую задержку, которая может длиться до нескольких минут.

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

Подробнее в Привязки хранилища BLOB-объектов Azure для функций Azure - опрос

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