что такое azure functions

Введение в функции Azure

Функции Azure — это бессерверное решение, которое позволяет в меньшем объеме писать объем кода и поддерживать инфраструктуру, а также экономить затраты. Вам не придется беспокоиться о развертывании и обслуживании серверов, ведь облачная инфраструктура предоставляет все новейшие ресурсы, необходимые для работы приложений.

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

Мы часто создаем системы, чтобы реагировать на ряд критических событий. В случае возникновения этих событий каждое приложение должно иметь возможность запускать код независимо от того, что вы делаете: создаете веб-API, реагируете на изменения базы данных, обрабатываете потоки данных Интернета вещей или даже управляете очередями сообщений.

Для этого служба «Функции Azure» предоставляет возможность выполнять вычисления по запросу двумя основными способами.

Первый — служба «Функции Azure» позволяет реализовать логику системы в быстро доступных блоках кода. Эти блоки кода называются «функциями». Вы можете запускать различные функции в любое время для реагирования на критические события.

Второй — по мере увеличения количества запросов служба «Функции Azure» полностью удовлетворяет потребности в необходимом количестве ресурсов и экземпляров функций (но только при необходимости). По мере уменьшения количества запросов все дополнительные ресурсы и экземпляры приложений автоматически отключаются.

Откуда берутся все эти вычислительные ресурсы? Служба «Функции Azure» предоставляет необходимое количество вычислительных ресурсов в соответствии с требованиями вашего приложения.

Суть бессерверных вычислений службы «Функции Azure» — в предоставлении вычислительных ресурсов по запросу.

Сценарии

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

Ниже перечислены распространенные наборы сценариев для службы «Функции Azure». Это неполный список сценариев.

Цель. Действие…
Создание веб-API Реализуйте конечную точку для веб-приложений с помощью триггера HTTP
Обработка передаваемых файлов Выполните код при передаче или изменении файла в хранилище BLOB-объектов
Создание бессерверного рабочего процесса Объедините набор функций с помощью устойчивых функций
Реагирование на изменения базы данных Запустите настраиваемую логику при создании или обновлении документа в Cosmos DB
Выполнение запланированных задач Запустите код с заранее заданными интервалами времени
Создание надежных систем очереди сообщений Обработайте очереди сообщений с помощью Хранилища очередей, служебной шины или Центров событий
Анализ потоков данных Интернета вещей Получите и обработайте данные с устройств Интернета вещей
Обработка данных в реальном времени Используйте службу «Функции Azure» и Signal R для реагирования на данные в реальном времени.

При создании функций доступны следующие возможности и ресурсы:

Использование предпочитаемого языка. Пишите функции на языке C#, Java, JavaScript, PowerShell или Python или используйте настраиваемый обработчик, чтобы воспользоваться любым другим языком.

Автоматическое развертывание. Существует множество вариантов развертывания: от использования средств до применения внешних конвейеров.

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

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

Источник

Introduction to Azure Functions

Azure Functions is a serverless solution that allows you to write less code, maintain less infrastructure, and save on costs. Instead of worrying about deploying and maintaining servers, the cloud infrastructure provides all the up-to-date resources needed to keep your applications running.

You focus on the pieces of code that matter most to you, and Azure Functions handles the rest.

To meet this need, Azure Functions provides «compute on-demand» in two significant ways.

First, Azure Functions allows you to implement your system’s logic into readily available blocks of code. These code blocks are called «functions». Different functions can run anytime you need to respond to critical events.

Where do all the compute resources come from? Azure Functions provides as many or as few compute resources as needed to meet your application’s demand.

Providing compute resources on-demand is the essence of serverless computing in Azure Functions.

Scenarios

In many cases, a function integrates with an array of cloud services to provide feature-rich implementations.

The following are a common, but by no means exhaustive, set of scenarios for Azure Functions.

If you want to. then.
Build a web API Implement an endpoint for your web applications using the HTTP trigger
Process file uploads Run code when a file is uploaded or changed in blob storage
Build a serverless workflow Chain a series of functions together using durable functions
Respond to database changes Run custom logic when a document is created or updated in Cosmos DB
Run scheduled tasks Execute code on pre-defined timed intervals
Create reliable message queue systems Process message queues using Queue Storage, Service Bus, or Event Hubs
Analyze IoT data streams Collect and process data from IoT devices
Process data in real time Use Functions and SignalR to respond to data in the moment

As you build your functions, you have the following options and resources available:

Use your preferred language: Write functions in C#, Java, JavaScript, PowerShell, or Python, or use a custom handler to use virtually any other language.

Automate deployment: From a tools-based approach to using external pipelines, there’s a myriad of deployment options available.

Troubleshoot a function: Use monitoring tools and testing strategies to gain insights into your apps.

Flexible pricing options: With the Consumption plan, you only pay while your functions are running, while the Premium and App Service plans offer features for specialized needs.

Источник

Создание приложений реального времени с помощью служб «Функции Azure» и «Azure SignalR»

Так как службы Azure SignalR и «Функции Azure» являются полностью управляемыми высокомасштабируемыми службами, которые позволяют сосредоточиться на создании приложений вместо управления инфраструктурой, часто используют обе службы, чтобы обеспечить обмен данными в реальном времени в беcсерверной среде.

Интеграция служб Azure в режиме реального времени

Функции Azure позволяют на нескольких языках, включая JavaScript, Python, C# и Java, создавать код, который запускается при каждом событии в облаке. Примеры этих событий.

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

Некоторые распространенные сценарии беcсерверной передачи сообщений в режиме реального времени, которые можно реализовать с помощью служб «Функции Azure» и SignalR, включают следующее.

Привязки службы SignalR для службы «Функции Azure»

Пример сценария

Пример использования привязок службы SignalR — это использование службы «Функции Azure» для интеграции с Azure Cosmos DB и службой SignalR для отправки сообщений в режиме реального времени, когда появляются новые события в канале изменения Cosmos DB.

Проверка подлинности и пользователи

Служба SignalR позволяет рассылать широковещательные сообщения для всех клиентов или только для подмножества клиентов, например тех, которые принадлежат одному пользователю. Привязки службы SignalR для службы «Функции Azure» можно объединить с Проверкой подлинности службы приложений для проверки подлинности пользователей с помощью поставщиков, например Azure Active Directory, Facebook и Twitter. Затем вы можете отправлять сообщения непосредственно этим пользователям, прошедшим проверку подлинности.

Дальнейшие действия

В этой статье вы получили общие сведения об использовании службы «Функции Azure» со службой SignalR для реализации широкого спектра бессерверных сценариев обмена сообщениями в реальном времени.

Полные сведения об использовании Функций Azure и службы SignalR см. в следующих ресурсах:

Дополнительные сведения см. в следующих кратких руководствах.

Источник

Руководство разработчиков Функций Azure

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

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

Код функции

Файл function.json определяет триггер, привязки и другие параметры конфигурации функции. Каждая функция имеет только один триггер. В среде выполнения этот файл используется для определения событий, которые необходимо отслеживать, и способа передачи данных в выполнение функции и возвращения данных из него. Ниже приведен пример файла function.json.

В свойстве bindings указываются свойства триггеров и привязок. Каждая привязка имеет ряд общих параметров и некоторые параметры, характерные для данного типа привязки. Для каждой привязки требуются указанные ниже параметры.

Свойство Значения Type Комментарии
тип Имя привязки.

Приложение-функция

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

Все функции в приложении-функции должны использовать один язык. Это не было обязательным в предыдущих версиях среды выполнения «Функции Azure».

Структура папок

Код всех функций приложения-функции хранится в корневой папке проекта, содержащей файл конфигурации главного узла. Файл host.json содержит конфигурацию среды выполнения. Он находится в корневой папке приложения-функции. Папка bin содержит пакеты и другие файлы библиотек, необходимые для работы приложения-функции. Структура папок, необходимая для приложения-функции, зависит от языка:

В версии 2.x и более поздних среды выполнения Функций Azure все функции в приложении-функции следует создавать на одном языке.

Выше приведена структура папки по умолчанию (рекомендуемая) для приложения-функции. Если вы желаете изменить расположение файла кода функции, измените раздел scriptFile в файле function.json. Мы рекомендуем развертывать проект в приложение-функцию в Azure путем развертывания пакета. Вы также можете использовать имеющиеся средства, такие как непрерывная интеграция и развертывание и Azure DevOps.

Использование локальных инструментов и публикация

Приложения-функции можно разрабатывать и публиковать с помощью различных средств, включая Visual Studio, Visual Studio Code, IntelliJ, Eclipse и Azure Functions Core Tools. Дополнительные сведения см. в статье Как программировать и тестировать Функции Azure в локальной среде.

Редактирование функций на портале Azure

Редактор функций на портале Azure позволяет обновлять файл function.json и файл кода для функции непосредственно на портале. Рекомендуется использовать его только для небольших изменений или для подтверждения концепции. Наиболее оптимальным способом является использование локального средства разработки, например, VS Code.

Параллельное выполнение

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

Управление версиями среды выполнения Функций

3″ указывает на то, что приложение-функция будет использовать 3.x в качестве основного номера версии. При выпуске приложения-функции обновляются до версии с новым дополнительным номером. Дополнительные сведения, в том числе инструкции по просмотру точной версии приложения-функции см. в статье Выбор целевых версий среды выполнения Функций Azure.

Репозитории

Код функций Azure имеет вид открытого исходного кода и хранится в репозиториях GitHub:

Привязки

В таблице ниже приведены все поддерживаемые привязки.

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

Тип 1.x 2.x и выше 1 Триггер Входные данные Выходные данные
Хранилище BLOB-объектов
Azure Cosmos DB
Dapr 3
Сетка событий
Центры событий
HTTP и веб-перехватчики
Центр Интернета вещей
Kafka 2
Мобильные приложения
Центры уведомлений
Хранилище очередей
RabbitMQ 2
SendGrid
Служебная шина
SignalR
Хранилище таблиц
Таймер
Twilio

1 Начиная со среды выполнения версии 2.х, все привязки, кроме HTTP и Timer, должны быть зарегистрированы. Ознакомьтесь с разделом Регистрация расширений привязки.

2 Триггеры не поддерживаются в плане потребления. Требуются триггеры, управляемые средой выполнения.

3 Поддерживается только в Kubernetes, IoT Edge и других автономных режимах.

Проблемы с ошибками, поступающими от привязок? См. документацию по кодам ошибок Функций Azure.

Соединения

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

Значения подключений

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

Например, connection свойство для определения триггера большого двоичного объекта Azure может иметь значение «Storage1». При условии отсутствия ни одного строкового значения, настроенного переменной среды с именем «Storage1», переменная среды с именем Storage1__blobServiceUri может использоваться для информирования blobServiceUri Свойства о соединении. Свойства подключения у всех служб различны. См. документацию по компоненту, использующему подключение.

Настройка подключения на основе удостоверений

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

Подключения на основе удостоверений поддерживаются следующими компонентами:

Источник подключения Поддерживаемые планы Подробнее
Триггеры и привязки BLOB-объектов Azure Все Расширение 5.0.0 или более поздняя версия
Триггеры и привязки очередей Azure Все Расширение 5.0.0 или более поздняя версия
Триггеры и привязки концентраторов событий Azure Все Расширение 5.0.0 или более поздняя версия
триггеры и привязки Azure служебная шина Все Расширение 5.0.0 или более поздняя версия
триггеры и привязки Azure Cosmos DB — предварительная версия Эластичные Premium Версия расширения 4.0.0-preview1: или более поздняя
Хранилище, требуемое для узла («AzureWebJobsStorage») — Предварительная версия Все Подключение к хранилищу узла с помощью удостоверения

Подключения на основе удостоверений не поддерживаются для Устойчивых функций.

Предоставление разрешения удостоверению

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

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

Выберите вкладку ниже, чтобы узнать о разрешениях для каждого компонента:

Тип привязки Примеры встроенных ролей
Триггер [служба хранилища владельца данных большого двоичного объекта] 1
Входные привязки читатель данных больших двоичных объектов хранилища.
Выходные привязки владелец данных BLOB-объектов хранилища;

1 в некоторых конфигурациях для триггера большого двоичного объекта дополнительно может потребоваться участник данных очереди служба хранилища.

Тип привязки Примеры встроенных ролей
Триггер [модуль чтения данных очереди служба хранилища], [обработчик сообщений служба хранилища очереди]
Выходные привязки [участник данных очереди служба хранилища], [отправитель сообщений в очереди служба хранилища]
Тип привязки Примеры встроенных ролей
Триггер [Приемник данных концентраторов событий Azure], [владелец данных концентраторов событий Azure]
Выходные привязки Отправитель данных Центров событий Azure
Тип привязки Примеры встроенных ролей
Триггер [azure служебная шина data приемник данных], [владелец данных служебная шина azure]
Выходные привязки Отправитель данных Служебной шины Azure
Тип привязки Примеры встроенных ролей
Триггер Встроенный участник данных Cosmos DB
Входные привязки Встроенный модуль чтения данных Cosmos DB
Выходные привязки Встроенный участник данных Cosmos DB

Общие свойства для подключений на основе удостоверений

Подключение на основе удостоверений для службы Azure принимает следующие общие свойства, где — это значение connection свойства в триггере или определении привязки:

Свойство Шаблон переменной среды Описание
Учетные данные маркера __credential Определяет, как должен быть получен маркер для соединения. Рекомендуется использовать только с назначаемым пользователем удостоверением, если для него задается значение «managedidentity». Это допустимо только при размещении в службе Функций Azure.
Идентификатор клиента __clientId Если для параметра credential задано значение «managedidentity», это свойство обозначает назначаемое пользователем удостоверение, которое будет использоваться при получении маркера. Свойство принимает идентификатор клиента, соответствующий назначаемому пользователем удостоверению, которое назначено приложению. По умолчанию для приложения будет использоваться удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, когда credential не задается.

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

Локальная разработка с использованием подключений на основе удостоверений

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

Если ни один из этих вариантов не будет успешным, будет возникать ошибка.

В некоторых случаях может потребоваться указать другое удостоверение. вы можете добавить свойства конфигурации для подключения, которые указывают на альтернативное удостоверение, на основе идентификатора клиента и секрета клиента для субъекта-службы Azure Active Directory. Этот параметр конфигурации не поддерживается при размещении в службе «функции Azure». Чтобы использовать идентификатор и секрет на локальном компьютере, определите подключение со следующими дополнительными свойствами:

Свойство Шаблон переменной среды Описание
Tenant ID __tenantId Идентификатор клиента (каталога) Azure Active Directory.
Идентификатор клиента __clientId Идентификатор клиента (приложения) для регистрации приложения в клиенте.
Секрет клиента __clientSecret Секрет клиента, созданный для регистрации приложения.

Ниже приведен пример свойств, local.settings.json необходимых для подключения на основе удостоверений к BLOB-объектам Azure.

Подключение к хранилищу узла с удостоверением (Предварительная версия)

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

Другие компоненты в функциях используют «AzureWebJobsStorage» для поведения по умолчанию. Не следует перемещать его в подключение на основе удостоверений, если используются более старые версии расширений, которые не поддерживают этот тип подключения, включая триггеры и привязки для больших двоичных объектов и концентраторов событий Azure. Аналогичным образом AzureWebJobsStorage используется для артефактов развертывания при использовании сборки на стороне сервера в Linux, а если это необходимо, необходимо выполнить развертывание с помощью внешнего пакета развертывания.

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

Чтобы использовать подключение на основе удостоверений для «AzureWebJobsStorage», настройте следующие параметры приложения:

Параметр Описание Пример значения
AzureWebJobsStorage__accountName Имя учетной записи хранения, допустимое только в том случае, если учетная запись не находится в независимых облаке и не имеет настраиваемого DNS.

Создание отчетов о проблемах

Элемент Описание Ссылка
Параметры выполнения Сервер сценариев, триггеры и привязки, языковая поддержка Сообщить о проблеме
Шаблоны Проблемы с кодом при использовании шаблона создания Сообщить о проблеме
Портал Проблемы с пользовательским интерфейсом или при работе с ним Сообщить о проблеме

Дальнейшие действия

Дополнительные сведения см. в следующих ресурсах:

Источник

Читайте также:  что делать когда обжегся утюгом
Строительный портал