Я пытаюсь создать свою первую функцию Azure. Функция будет создана с использованием C# и .Net 8.0. Он будет работать в режиме изолированной рабочей модели и использовать HttpTrigger
. HTTP-запрос будет представлять собой POST, содержащий в теле некоторый JSON.
Я рассмотрел несколько примеров, в которых используется HttpRequestData
. Если я попытаюсь запустить пример функции и отправить запрос (с помощью Postman), немедленно будет возвращена внутренняя ошибка сервера (код состояния 500). Сообщение об ошибке:
System.Private.CoreLib: исключение при выполнении функции: MyHttpTriggerFunction. Microsoft.Azure.WebJobs.Host: произошла одна или несколько ошибок. (Параметр привязки исключения «req») (Параметр привязки исключения «functionContext»). Параметр привязки исключения «req». System.Private.CoreLib: невозможно динамически создать экземпляр типа «Microsoft.Azure.Functions.Worker.Http.HttpRequestData». Причина: Невозможно создать абстрактный класс.
Подпись моей тестовой функции:
[FunctionName(nameof(MyHttpTriggerFunction))]
public static HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")]
HttpRequestData req,
FunctionContext functionContext)
Почему я получаю исключение?
Покопавшись в Интернете, я обнаружил, что мне пришлось заменить некоторые пакеты NuGet, которые VS добавил в рамках создания приложения-функции: Microsoft.Azure.WebJobs
против Microsoft.Azure.Functions
.
Я также заменил атрибут FunctionName
на Function
.
И последнее, что нужно было обновить инструменты Azure в VS (так как в рамках штатных обновлений этого видимо не происходит).