Сбой примерной функции Javascript blobtrigger с исключением StorageException

#azure #azure-functions #azure-blob-storage

#azure #azure-функции #azure-blob-хранилище

Вопрос:

Совершенно новое функциональное приложение javascript с функцией blobtriggered завершает работу с ошибкой 500 :

Описание: Процесс был завершен из-за необработанного исключения. Информация об исключении: Microsoft.WindowsAzure.Хранение.Исключение StorageException: указанное имя ресурса содержит недопустимые символы. в Microsoft.WindowsAzure.Storage.Core.Исполнитель.Исполнитель.ExecuteAsyncInternal[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext OperationContext, токен CancellationToken) в Microsoft.Azure.WebJobs.Host.Queues.Слушатели.QueueListener.ExecuteAsync(CancellationToken CancellationToken) в C:projectsazure-webjobs-sdk-rqm4tsrcMicrosoft .Azure.Веб-задания.Расширения.Хранилище Очереди слушатели QueueListener.cs: строка 155 в Microsoft.Azure.WebJobs.Host.Таймеры.TaskSeriesTimer.RunAsync(CancellationToken CancellationToken) в C:projectsazure-webjobs-sdk-rqm4tsrcMicrosoft .Azure.Веб-задания.Host Timers TaskSeriesTimer.cs: строка 147 в Microsoft.Azure.WebJobs.Host.Таймеры.WebJobsExceptionHandler.<>c__DisplayClass3_0.<OnUnhandledExceptionAsync>b__0() в C:projectsazure-webjobs-sdk-rqm4tsrcMicrosoft .Azure.Веб-задания.Хост Таймеры WebJobsExceptionHandler.cs: строка 54 в системе.Многопоточность.Нитки.ThreadMain_ThreadStart() в системе.Многопоточность.ThreadHelper.ThreadStart_Context(состояние объекта) в системе.Многопоточность.ExecutionContext.RunInternal(ExecutionContext ExecutionContext, обратный вызов ContextCallback, состояние объекта) — Конец трассировки стека из предыдущего местоположения, где было вызвано исключение — в системе.Многопоточность.ExecutionContext.Выполнить внутренний (ExecutionContext ExecutionContext, обратный вызов ContextCallback, состояние объекта) в системе.Многопоточность.ThreadHelper.ThreadStart()

Шаги: я создал новое функциональное приложение с :

  • в javascript
  • в плане обслуживания Windows
  • совершенно новое хранилище / группа ресурсов

Затем я перешел к функциональному приложению и создал новую функцию :

  • с портала
  • с шаблоном «Azure Blob Storage Trigger» (я установил расширение хранилища).
  • путь к хранилищу по умолчанию, имена переменных и т. Д

Затем я создал контейнер «samples-workitems» в хранилище и поместил в него файл для запуска функции и получения сообщения об ошибке из журналов функций.

Я также попытался «протестировать» функцию с правой панели на портале со значением samples-workitems/{файл, который я скопировал}, и я получил ошибку 500 и предыдущее сообщение.

Что-то странное, что я заметил, вернувшись к приложению-функции на веб-портале :

введите описание изображения здесь Расширение хранилища Azure, похоже, установлено правильно, но если я попытаюсь добавить новую функцию, запускаемую blob, она снова попросит меня установить расширение хранилища… Так что я предполагаю, что ему никогда не удастся установить расширение, и он не в состоянии это сделать.

РЕДАКТИРОВАТЬ: Оказывается, Azure теперь подтверждает, что расширение установлено, но у меня все еще есть исключение StorageException

Ответ №1:

Вы можете проверить, успешно установлено расширение или нет из Kudu. Откройте DebugConsole -> Перейти к D:homesitewwwrootbin . Майкрософт.Azure.Веб-задания.Расширения.Storage.dll . Если библиотека DLL хранилища отсутствует, установка расширения не завершилась успешно.

Комментарии:

1. Да, DLL находится в папке bin. Но добавление новой функции запуска blob-объектов с портала говорит мне, что она не установлена: «Для этого шаблона требуются следующие расширения. Майкрософт. Azure. Веб-задания. Расширения. Хранилище»

Ответ №2:

Вы можете переустановить нужные расширения. Вы могли бы обратиться к этой вики: Обновите свое приложение с портала.

Отредактируйте extensions.csproj файл, внесите необходимые дополнения и обновления PackageReference элементов в ItemGroup , затем выберите Сохранить. Информацию о поддерживаемых версиях пакетов можно найти в Какие пакеты NuGet мне нужны?.

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

 dotnet build extensions.csproj -o bin --no-incremental --packages D:home.nuget
  

Комментарии:

1. Azure теперь подтверждает, что расширение установлено, но у меня все еще есть исключение StorageException