Sdílet prostřednictvím


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 k implementaci těchto systémů použít 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ávání.

Diagram procesu nahrání souboru pomocí Azure Functions

Následující kurzy používají iniciátor pro objekty blob (založený na Event Gridu) ke zpracování souborů v kontejneru pro objekty blob.

Například použijte blob trigger s odběrem událostí na kontejnerech 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í telemetrie. Služba Azure Functions může tato data zpracovávat téměř v reálném čase jako prioritní cesta a pak je ukládat do služby Azure Cosmos DB pro použití na analytické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, aby se zjednodušily 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 Content 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 funkce a chování umělé inteligence služby Azure OpenAI, jako je generování s podporou načítání dat (RAG), do provádění vašich funkcí kódu. Další informace naleznete v tématu Generace rozšířená pomocí načítání.

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

Diagram procesu strojového učení a umělé inteligence pomocí Azure Functions

Další informace najdete v tématu Použití nástrojů a modelů AI ve službě 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.

Viz Vytvoření funkce na webu Azure Portal, která běží podle plánu.

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

Aktivovaná funkce 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 použít také jako integraci webhooku, jako jsou webhooky GitHubu. Tímto způsobem můžete vytvářet funkce, které zpracovávají data z událostí GitHubu. Další informace najdete v tématu Monitorování událostí GitHubu pomocí webhooku se službou Azure Functions.

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 – přehled.

Kombinovaný diagram řady konkrétních bezserverových pracovních postupů využívajících Azure Functions

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

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

Pomocí funkcí se službami zasílání zpráv Azure 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 služby Azure Functions ve spolehlivém systému zpráv

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 fronty nebo tématu služby Azure Service Bus.

Další kroky