Функции Azure - идеальное решение для веб-заданий или сценариев, выполнение которых занимает мало времени и вызывается время от времени или по расписанию.

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

В этом посте я покажу вам, как начать разработку функции Azure с использованием JavaScript и среды выполнения Node.js. В сценарии JavaScript для разработки функции требуются Node.js и npm.

Первое, что нам нужно сделать, это установить с помощью npm глобально Azure Functions Core Tools v2 от Microsoft. Убедитесь, что вы установили v2, который является автономным кроссплатформенным пакетом и будет работать в Windows, Mac и Linux.

Основные инструменты Функций Azure предоставляют возможности локальной разработки для создания, разработки, тестирования, запуска и отладки
Функций Azure.

Более подробную информацию о пакете вы можете найти на github https://github.com/Azure/azure-functions-core-tools

После того, как мы установили инструменты, мы можем приступить к созданию нашей первой функции. Прежде всего, необходимо создать новое приложение-функцию в текущей папке, запустив func init из командной строки. По умолчанию это также создаст локальный репозиторий git, который мы можем пропустить, передав параметр команде CLI func init -n

Следующим шагом будет создание самой функции. Выполнив func new, мы войдем в мастер создания функции, где нас попросят:

  • выберите язык (C # или JavaScript),
  • выберите шаблон (в этом посте мы сосредоточимся на функции, вызываемой Http)
  • укажите имя функции

Так выглядит код функции после того, как мы создали его по шаблону.

Теперь мы можем запустить функцию, выполнив func start. Эта команда запустит приложение-функцию локально и предоставит нам URL-адрес, который будет запускать функцию на скриншоте выше.

При вызове из Http функция получает данные запроса через параметр req и ищет параметр name в запросе или теле запроса. Если он найден, он возвращает статус 200 и добавляет текст к ответу, см. context.res.body.

Если имя не найдено, функция возвращает статус 400 и сообщение для предоставления имени.

Параметр context предоставляет нам объект контекста среды выполнения, который можно использовать для передачи и получения данных от функции и для связи со средой выполнения. Подробнее об объекте контекста можно прочитать в официальных документах https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node#context-object

Следует отметить, что мы должны явно вызвать context.done() в конце нашей функции, чтобы сообщить среде выполнения, что функция выполнила свою работу. Без его вызова среда выполнения не узнает, завершилась функция или нет, и время выполнения функции в конечном итоге истечет. Кроме того, без вызова context.done() мы не получим ответа.

Так что это самый минимум, чтобы начать экспериментировать с функциями Azure, которые являются одним из многих бессерверных вариантов на рынке. В следующих статьях я покажу вам, как отлаживать функции, обмениваться данными между функциями и публиковать приложение-функцию в Azure из VS Code.

Ваше здоровье!



Если вы нашли этот пост полезным и хотели бы узнать больше, просто хлопните в ладоши или оставьте комментарий здесь. И, как всегда, вы можете найти меня в Twitter @ andrejsabrickis