Поделиться через


сценарии Функции Azure

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

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

Выберите язык разработки в верхней части статьи.

Обработка передаваемых файлов

Вы можете использовать функции различными способами для обработки файлов в контейнере хранилища блоб-объектов или извлечения их из контейнера. Для получения дополнительных сведений о параметрах активации для контейнера BLOB-объектов см. Работа с BLOB-объектами в документации по лучшим практикам.

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

Diagram процесса отправки файла с помощью Функции Azure.

В следующих руководствах используется триггер Blob, основанный на Сетка событий Azure, для обработки файлов в контейнере 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();
        }
    }
}

Поток в режиме реального времени и обработка событий

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

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

Диаграмма процесса обработки потоков в реальном времени с использованием Функции Azure.

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

[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 предоставляет бессерверные вычислительные ресурсы, которые интегрируются с ИИ и Azure службами для упрощения создания облачных интеллектуальных приложений. Вы можете использовать модель программирования функций для создания и размещения серверов протокола MCP удаленной модели и реализации различных средств искусственного интеллекта. Дополнительные сведения см. в разделе Инструменты и серверы MCP.

Расширение привязки Azure OpenAI позволяет интегрировать функции и поведение ИИ Azure OpenAI, такие как генерация с дополненным извлечением (RAG), в выполнение вашего кода функции. Для получения дополнительной информации см. Поколение с дополнением поиска.

Функция также может вызывать модель TensorFlow или Средства Foundry для обработки и классификации потока изображений.

Диаграмма процесса машинного обучения и искусственного интеллекта на основании Функции Azure.

Дополнительные сведения см. в разделе Использование средств и моделей искусственного интеллекта в Функции Azure.

Выполнение запланированных задач

Функции позволяют запускать код на основе определенного расписания cron.

Дополнительные сведения см. в разделе Создайте функцию в портале Azure, которая выполняется по расписанию.

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

Схема запланированной задачи, в которой функция очищает базу данных каждые 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. Дополнительные сведения см. в разделе Функции Azure HTTP триггер.

Diagram обработки HTTP-запроса с помощью Функции 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();
}

Создание бессерверного рабочего процесса

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

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

Реагирование на изменения базы данных

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

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

Создание надежных систем сообщений

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

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

Схема работы Функции Azure в надежной системе обмена сообщениями.

В этих статьях показано, как записывать выходные данные в очередь хранилища:

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

Следующий шаг