Краткое руководство по функциям Azure Functions

Опубликовано: 5 Марта, 2023
Краткое руководство по функциям Azure Functions

Microsoft Azure недавно создала свои функции Azure, чтобы воспользоваться полезной тенденцией бессерверных вычислений. Как это вписывается в вашу архитектуру и каковы наиболее важные функции Azure Functions?

Хотя, конечно, бессерверные вычисления на самом деле не могут быть «бессерверными», эта относительно новая технология позволяет разработчикам и пользователям не беспокоиться об инфраструктуре или проблемах с сервером, позволяя им беспокоиться только о коде, который они создают.

Azure начал выпускать свои функции около года назад, в мае 2016 года, отставая от выпуска AWS Lambda 2014 года, но сильно отставая от Google Cloud Functions в феврале 2016 года.

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

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

Возможности функций Azure

Изображение 574
Майкрософт

Здесь мы немного подробнее расскажем о функциях Azure и о том, что они для вас значат.

Как объяснялось ранее, это бессерверное решение, то есть вам не придется заниматься инфраструктурой и предоставлением серверов. Это особенно полезно, когда вам нужно масштабировать ваше приложение.

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

Вы также можете «щелкнуть и добавить привязки к службам Azure и внешним службам (Box, Dropbox, Microsoft OneDrive, SendGrid и т. д.), чтобы получить ввод или вывод из функций».

Функции Azure поддерживают разные языки, например JavaScript, C#, F#. Он также включает в себя варианты сценариев, такие как Python, PHP, Bash, Batch и PowerShell. У вас также есть возможность «загружать и запускать предварительно скомпилированный код, созданный с помощью вашего любимого инструмента разработки».

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

Аутентификация также проста при использовании этого инструмента, легко защищая конечные точки облачных функций с помощью сторонней аутентификации, включая такие сайты, как Facebook и Twitter.

Цены

Как уже упоминалось, вам нужно платить только за фактическое время работы вашего кода. Согласно сайту Microsoft, «Счета за функции выставляются на основе общего количества запрошенных исполнений каждый месяц для всех функций. Выполнения подсчитываются каждый раз, когда функция выполняется в ответ на событие, вызванное привязкой».

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

Стоимость функций рассчитывается на основе «наблюдаемого потребления ресурсов, измеряемого в гигабайтах секунд (ГБ-с)». Способ, которым Microsoft определяет наблюдаемое потребление ресурсов, заключается в «умножении среднего размера памяти в гигабайтах на время в секундах, необходимое для выполнения функции». Для получения дополнительной информации посетите страницу с ценами Microsoft.

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

Кажется, что пользователи могут иметь приложения-функции с максимальным количеством экземпляров 10, в то время как выполнение ограничено 5 минутами на вызов. Многие считают, что это ограничение, и им это не нравится, особенно когда необходимы длительные задачи.

К счастью, были внесены изменения в инфраструктуру, позволяющие увеличить максимальное время ожидания до 20 минут, хотя это изменение еще не было развернуто.

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

Непрерывное развертывание

Изображение 575
Майкрософт

Пользователи также могут свободно использовать Visual Studio Team Services, GitHub или BitBucket для быстрой итерации функций Azure с непрерывным развертыванием, чтобы упростить интеграцию своих DevOps.

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

Еще одна вещь, которую следует отметить в отношении функций Azure, заключается в том, что при развертывании развертываются не просто отдельные функции, а все приложение целиком, а это означает, что каждое развертывание влияет на все ваши функции. Однако одно и то же приложение может иметь функции, реализованные на разных языках.

Версии

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

Общие сведения о событиях и вызовах в Функциях Azure

Функции Microsoft Azure часто используются для обработки данных или создания микрослужб или API, поскольку это служба, управляемая событиями. Существует множество событий и служб, которые могут запускать функции, такие как потоковая передача данных для Интернета вещей, HTTP-запросы (как из REST API, так и из WebHook) или планирование действия с помощью таймера.

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

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

Фактически, каждая функция будет автоматически сопоставлена с конечной точкой HTTP, если вы решите включить эту функцию.

Нижняя линия

Azure Functions — отличный продукт, который существует на рынке уже около года. Его среда выполнения имеет открытый исходный код, и Microsoft, похоже, регулярно предоставляет обновления, что делает его хорошим выбором, если цена и функции соответствуют тому, что нужно вам и вашей команде.