Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Часто вы создаете системы, реагирующие на ряд критических событий. Независимо от того, создаете ли веб-API, отвечаете на изменения базы данных или обрабатываете потоки событий или сообщения, можно использовать Функции Azure для реализации этих систем.
Во многих случаях функция интегрируется с массивом облачных служб, чтобы обеспечить широкие возможности для реализаций. В следующем списке показаны распространенные сценарии (но не являются исчерпывающими) для функций Azure.
Выберите язык разработки в верхней части статьи.
Обработка передаваемых файлов
Вы можете использовать функции различными способами для обработки файлов в контейнере хранилища блоб-объектов или извлечения их из контейнера. Для получения дополнительных сведений о параметрах активации для контейнера BLOB-объектов см. Работа с BLOB-объектами в документации по лучшим практикам.
Например, в розничном решении партнерская система может отправлять сведения каталога товаров в виде файлов в объектное хранилище. Вы можете использовать функцию, активируемую объектами BLOB, для проверки, преобразования и обработки файлов в основной системе во время их загрузки.
В следующих руководствах используется триггер Blob (на основе Event Grid) для обработки файлов в контейнере Blob:
Например, используйте триггер BLOB с подпиской на события в контейнерах BLOB.
[FunctionName("ProcessCatalogData")]
public static async Task Run([BlobTrigger("catalog-uploads/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")] Stream myCatalogData, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myCatalogData.Length} Bytes");
using (var reader = new StreamReader(myCatalogData))
{
var catalogEntry = await reader.ReadLineAsync();
while(catalogEntry !=null)
{
// Process the catalog entry
// ...
catalogEntry = await reader.ReadLineAsync();
}
}
}
- Краткое руководство. Реагирование на события хранилища BLOB-объектов с помощью Функций Azure
- Пример: триггер для BLOB-объектов в шаблоне быстрого начала работы с источником типа Event Grid)
- Руководство (события): активация функций Azure в контейнерах BLOB с помощью подписки на события
- Руководство по опросу. Отправка и анализ файла с помощью Функций Azure и хранилища BLOB-объектов
- Краткое руководство: Реагирование на события хранилища BLOB с помощью функций Azure
- Пример: триггер Blob с примером быстрого старта по типу источника Event Grid)
- Руководство (события): Запуск функций Azure в контейнерах объектов Blob с помощью подписки на события
- Руководство по опросу. Отправка и анализ файла с помощью Функций Azure и хранилища BLOB-объектов
Поток в режиме реального времени и обработка событий
Облачные приложения, устройства Интернета вещей и сетевые устройства создают и собирают большое количество данных телеметрии. Функции Azure может обрабатывать эти данные почти в режиме реального времени как горячий путь, а затем хранить его в Azure Cosmos DB для использования на панели мониторинга аналитики.
Функции также могут использовать триггеры событий с низкой задержкой, такие как Сетка событий, и выходные данные в режиме реального времени, такие как SignalR, для обработки данных практически в режиме реального времени.
Например, вы можете использовать триггер концентраторов событий для чтения из концентратора событий и выходную привязку для записи в концентратор событий после разгруппировки и преобразования событий.
[FunctionName("ProcessorFunction")]
public static async Task Run(
[EventHubTrigger(
"%Input_EH_Name%",
Connection = "InputEventHubConnectionSetting",
ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
[EventHub(
"%Output_EH_Name%",
Connection = "OutputEventHubConnectionSetting")] IAsyncCollector<SensorDataRecord> outputMessages,
PartitionContext partitionContext,
ILogger log)
{
var debatcher = new Debatcher(log);
var debatchedMessages = await debatcher.Debatch(inputMessages, partitionContext.PartitionId);
var xformer = new Transformer(log);
await xformer.Transform(debatchedMessages, partitionContext.PartitionId, outputMessages);
}
- Стриминг в масштабе с помощью Azure Event Hubs, Azure Functions и Azure SQL
- Потоковая передача в масштабе с помощью Центра событий Azure, Функций и Cosmos DB
- Потоковая передача на платформе Azure Event Hubs с Kafka producer, Functions с триггером Kafka и Cosmos DB
- Потоковая передача в масштабе с помощью Azure IoT Hub, Функции Azure и Azure SQL
- триггер для Azure Event Hubs в Azure Functions
- Триггер Apache Kafka для Функции Azure
Машинное обучение и ИИ
Функции Azure предоставляют бессерверные вычислительные ресурсы, которые интегрируются со службами ИИ и Azure для упрощения создания облачных интеллектуальных приложений. Вы можете использовать модель программирования функций для создания и размещения серверов протокола MCP удаленной модели и реализации различных средств искусственного интеллекта. Дополнительные сведения см. в разделе Инструменты и серверы MCP.
Расширение привязки Azure OpenAI позволяет интегрировать функции и поведения ИИ службы Azure OpenAI, такие как генерация с дополнением выборки (RAG), в выполнение кода функции. Для получения дополнительной информации см. Поколение с дополнением поиска.
Функция также может вызывать модель TensorFlow или службы ИИ Azure для обработки и классификации потока изображений.
- Краткое руководство. Создание пользовательского удаленного сервера MCP с помощью Функций Azure
- Быстрый старт: Размещение серверов, созданных с помощью MCP SDK, на платформах Azure Functions
- Пример. Начало работы с удаленными серверами MCP с помощью функций Azure
- Пример. Размещение удаленных серверов MCP, созданных с помощью официальных пакетов SDK MCP в Функциях Azure
- Краткое руководство. Создание пользовательского удаленного сервера MCP с помощью Функций Azure
- Краткое руководство по размещению серверов, созданных на основе пакетов SDK MCP на платформе Azure Functions
- Пример. Начало работы с удаленными серверами MCP с помощью функций Azure
- Пример. Размещение удаленных серверов MCP, созданных с помощью официальных пакетов SDK MCP в Функциях Azure
Дополнительные сведения см. в статье "Использование средств и моделей ИИ" в Функциях Azure.
Выполнение запланированных задач
Функции позволяют запускать код на основе определенного расписания cron.
Смотрите статью "Создание функции на портале Azure, которая выполняется по расписанию".
Например, можно проанализировать базу данных клиентов финансовых служб для повторяющихся записей каждые 15 минут, чтобы избежать нескольких сообщений, передаваемых одному клиенту.
Примеры см. в следующих фрагментах кода:
[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
{
if (myTimer.IsPastDue)
{
log.LogInformation("Timer is running late!");
}
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
// Perform the database deduplication
}
Создание масштабируемого веб-API
Функция, активировающая HTTP, определяет конечную точку HTTP. Эти конечные точки выполняют код функции, который может подключаться к другим службам напрямую или с помощью расширений привязки. Конечные точки можно интегрировать в веб-API.
Вы также можете использовать конечную точку функции, активированную HTTP, как интеграцию веб-перехватчиков веб-перехватчика, например веб-перехватчики GitHub. Таким образом, вы можете создавать функции, обрабатывающие данные из событий GitHub. Дополнительные сведения см. в разделе "Мониторинг событий GitHub" с помощью веб-перехватчика с функциями Azure.
Примеры см. в следующих фрагментах кода:
[FunctionName("InsertName")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
[CosmosDB(
databaseName: "my-database",
collectionName: "my-container",
ConnectionStringSetting = "CosmosDbConnectionString")]IAsyncCollector<dynamic> documentsOut,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
string name = data?.name;
if (name == null)
{
return new BadRequestObjectResult("Please pass a name in the request body json");
}
// Add a JSON document to the output container.
await documentsOut.AddAsync(new
{
// create a random ID
id = System.Guid.NewGuid().ToString(),
name = name
});
return new OkResult();
}
- Краткое руководство: HTTP-триггер функций Azure
- Статья. Создание бессерверных API в Visual Studio с помощью интеграции "Функции Azure" и "Управление API"
- Учебный курс. Предоставление нескольких приложений-функций в качестве согласованного API с помощью службы "Управление API Azure"
- Пример. Веб-приложение с API C# и Базой данных SQL Azure в статических веб-приложениях и функциях
Создание бессерверного рабочего процесса
Функции часто служат в качестве вычислительного компонента в топологии бессерверных рабочих процессов, таких как рабочий процесс Logic Apps. Вы также можете создавать длительные оркестрации с помощью расширения Durable Functions. Дополнительные сведения см. в разделе обзор Устойчивых функций.
Реагирование на изменения базы данных
Некоторые процессы должны выполнять журнал, аудит или другие операции при изменении хранимых данных. Триггеры функций предоставляют хороший способ получать уведомления об изменениях данных для инициирования такой операции.
Рассмотрим следующие примеры.
Создание надежных систем сообщений
Функции можно использовать со службами обмена сообщениями Azure для создания расширенных решений для обмена сообщениями на основе событий.
Например, триггеры можно использовать в очередях хранилища Azure для последовательного выполнения функций. Или используйте очереди служебной шины и триггеры для системы заказа по сети.
В этих статьях показано, как записывать выходные данные в очередь хранилища:
В этих статьях показано, как инициировать очередь или тему в служебной шине Azure.