#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