scénáře Azure Functions

Často vytváříte systémy, které reagují na řadu kritických událostí. Bez ohledu na to, jestli vytváříte webové rozhraní API, reagujete na změny databáze nebo zpracováváte streamy událostí nebo zprávy, můžete tyto systémy implementovat pomocí Azure Functions.

V mnoha případech se funkce integruje s řadou cloudových služeb , aby poskytovala implementace s bohatými funkcemi. Následující seznam ukazuje běžné (ale bez vyčerpávajícího) scénáře pro Azure Functions.

V horní části článku vyberte svůj vývojový jazyk.

Zpracování nahraných souborů

Funkce můžete použít několika způsoby ke zpracování souborů do nebo z kontejneru úložiště objektů blob. Další informace o možnostech spouštění v kontejneru objektů blob najdete v dokumentaci k osvědčeným postupům pracujete s objekty blob.

Například v maloobchodním řešení může partnerský systém odesílat informace o katalogu produktů jako soubory do úložiště typu blob. Funkci aktivovanou objektem blob můžete použít k ověření, transformaci a zpracování souborů do hlavního systému při jejich nahrání.

Diagram procesu nahrávání souborů pomocí Azure Functions.

Následující tutoriály používají spouštěč Azure Blob (založený na Azure Event Grid) ke zpracování souborů v kontejneru Blob:

Můžete například použít trigger objektu blob s odběrem událostí v kontejnerech objektů 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();
        }
    }
}

Zpracování datových proudů a událostí v reálném čase

Cloudové aplikace, zařízení IoT a síťová zařízení generují a shromažďují velké množství zákaznických dat. Azure Functions může tato data zpracovávat téměř v reálném čase pro rychlý přístup a pak je uložit do Azure Cosmos DB pro použití na analytickém řídicím panelu.

Vaše funkce můžou také používat triggery událostí s nízkou latencí, jako je Event Grid, a výstupy v reálném čase, jako je SignalR, ke zpracování dat téměř v reálném čase.

Diagram procesu datového proudu v reálném čase pomocí Azure Functions.

Trigger centra událostí můžete například použít ke čtení z centra událostí a výstupní vazby pro zápis do centra událostí po debatě a transformaci událostí:

[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);
}

Strojové učení a AI

Azure Functions poskytuje bezserverové výpočetní prostředky, které se integrují s AI a službami Azure za účelem zjednodušení vytváření inteligentních aplikací hostovaných v cloudu. Programovací model Functions můžete použít k vytvoření a hostování vzdálených serverů MCP (Model Context Protocol) a implementaci různých nástrojů AI. Další informace naleznete v tématu Nástroje a servery MCP.

Rozšíření vazby Azure OpenAI umožňuje integrovat AI funkce a chování Azure OpenAI, jako je retrieval-augmented generation (RAG), do běhu kódu funkce. Další informace naleznete v tématu Generace rozšířená pomocí načítání.

Funkce může také volat model TensorFlow nebo Foundry Tools ke zpracování a klasifikaci datového proudu obrázků.

Diagram procesu strojového učení a AI pomocí Azure Functions.

Další informace najdete v tématu Použití nástrojů a modelů AI v Azure Functions.

Spouštění naplánovaných úloh

Funkce umožňují spouštět váš kód na základě plánu cron, který definujete.

Další informace najdete v tématu Vytvořit funkci v Azure portálu, která běží podle rozvrhu.

Můžete například analyzovat databázi zákazníků finančních služeb s duplicitními položkami každých 15 minut, abyste se vyhnuli více komunikacím, které se budou shodovat se stejným zákazníkem.

Diagram naplánované úlohy, kde funkce vyčistí databázi každých 15 minut, odstranění duplicitních dat na základě obchodní logiky

Příklady najdete v těchto fragmentech kódu:

[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
}

Vytvoření škálovatelného webového rozhraní API

Funkce aktivovaná protokolem HTTP definuje koncový bod HTTP. Tyto koncové body spouští kód funkce, který se může připojit k jiným službám přímo nebo pomocí rozšíření vazeb. Můžete sestavit koncové body do webového API.

Koncový bod funkce aktivovaný protokolem HTTP můžete také použít jako integraci webových hooků, například webové hooky GitHubu. Tímto způsobem můžete vytvářet funkce, které zpracovávají data z GitHub událostí. Další informace najdete v Azure Functions HTTP trigger.

Diagram zpracování požadavku HTTP pomocí Azure Functions.

Příklady najdete v těchto fragmentech kódu:

[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();
}

Vytvoření bezserverového pracovního postupu

Funkce často slouží jako výpočetní komponenta v topologii bezserverového pracovního postupu, jako je pracovní postup Logic Apps. Pomocí rozšíření Durable Functions můžete také vytvářet dlouhotrvající orchestrace. Další informace najdete v tématu Durable Functions overview.

Kombinovaný diagram řady konkrétních serverless pracovních postupů pomocí

Podívejte se na tyto příklady:

Reakce na změny databáze

Některé procesy musí protokolovat, auditovat nebo provádět jiné operace při změnách uložených dat. Triggery funkcí poskytují dobrý způsob, jak získat oznámení o změnách dat při počáteční operaci.

Diagram funkce, která se používá k reagování na změny databáze

Podívejte se na tyto příklady:

Vytváření spolehlivých systémů zpráv

Pomocí služby Functions s Azure zasílání zpráv můžete vytvářet pokročilá řešení zasílání zpráv řízená událostmi.

Triggery můžete například použít ve frontách Azure Storage jako způsob, jak zřetězit řadu spuštění funkcí. Nebo použijte fronty a spouštěče služby Service Bus pro online systém objednávek.

Diagram Azure Functions ve spolehlivém zprávovém systému.

V těchto článcích se dozvíte, jak zapisovat výstup do fronty úložiště:

Tyto články ukazují, jak aktivovat z Azure Service Bus fronty nebo tématu.

Další krok