Delen via


Azure Functions-scenario's

Vaak bouwt u systemen die reageren op een reeks kritieke gebeurtenissen. Of u nu een web-API bouwt, reageert op databasewijzigingen of gebeurtenisstromen of berichten verwerkt, u kunt Azure Functions gebruiken om deze systemen te implementeren.

In veel gevallen kan een functie worden geïntegreerd met een matrix van cloudservices om implementaties met uitgebreide functies te bieden. De volgende lijst bevat veelvoorkomende (maar niet volledig) scenario's voor Azure Functions.

Selecteer uw ontwikkeltaal bovenaan het artikel.

Uploads van bestanden verwerken

U kunt functies op verschillende manieren gebruiken om bestanden te verwerken in of uit een blobopslagcontainer. Zie Werken met blobs in de aanbevolen documentatie voor meer informatie over opties voor het activeren van een blobcontainer.

In een retailoplossing kan een partnersysteem bijvoorbeeld productcatalogusgegevens als bestanden verzenden naar blobopslag. U kunt een door een blob geactiveerde functie gebruiken om de bestanden te valideren, transformeren en verwerken in het hoofdsysteem terwijl u ze uploadt.

Diagram van een proces voor het uploaden van bestanden met behulp van Azure Functions.

In de volgende zelfstudies wordt een blobtrigger (op basis van Event Grid) gebruikt om bestanden in een blobcontainer te verwerken:

Gebruik bijvoorbeeld de blobtrigger met een gebeurtenisabonnement op blobcontainers:

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

Realtime stroom- en gebeurtenisverwerking

Cloudtoepassingen, IoT-apparaten en netwerkapparaten genereren en verzamelen een grote hoeveelheid telemetrie. Azure Functions kan die gegevens bijna in realtime verwerken als het dynamische pad en deze vervolgens opslaan in Azure Cosmos DB voor gebruik in een analysedashboard.

Uw functies kunnen ook triggers voor gebeurtenissen met lage latentie gebruiken, zoals Event Grid, en realtime-uitvoer zoals SignalR om gegevens in bijna realtime te verwerken.

Diagram van een realtime stroomproces met behulp van Azure Functions.

U kunt bijvoorbeeld de event hubs-trigger gebruiken om te lezen van een Event Hub en de uitvoerbinding om naar een Event Hub te schrijven na het debatteren en transformeren van de gebeurtenissen:

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

Machine learning en AI

Azure Functions biedt serverloze rekenresources die kunnen worden geïntegreerd met AI- en Azure-services om het bouwen van intelligente toepassingen in de cloud te stroomlijnen. U kunt het Functions-programmeermodel gebruiken om externe MCP-servers (Model Content Protocol) te maken en te hosten en verschillende AI-hulpprogramma's te implementeren. Zie Hulpprogramma's en MCP-servers voor meer informatie.

Met de azure OpenAI-bindingsextensie kunt u AI-functies en -gedrag van de Azure OpenAI-service, zoals het ophalen van augmented generation (RAG), integreren in de uitvoeringen van uw functiecode. Zie Retrieval-augmented generation voor meer informatie.

Een functie kan ook een TensorFlow-model of Azure AI-services aanroepen om een stroom afbeeldingen te verwerken en te classificeren.

Diagram van een machine learning- en AI-proces met behulp van Azure Functions.

Zie AI-hulpprogramma's en -modellen gebruiken in Azure Functions voor meer informatie.

Geplande taken uitvoeren

Met Functions kunt u uw code uitvoeren op basis van een cron-schema dat u definieert.

Zie Een functie maken in Azure Portal die volgens een planning wordt uitgevoerd.

U kunt bijvoorbeeld elke 15 minuten een klantdatabase voor financiële services analyseren op dubbele vermeldingen om te voorkomen dat meerdere communicatie naar dezelfde klant wordt verzonden.

Diagram van een geplande taak waarbij een functie elke 15 minuten een database opschoont die vermeldingen ontdubbelt op basis van bedrijfslogica.

Zie deze codefragmenten voor voorbeelden:

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

Een schaalbare web-API bouwen

Een door HTTP geactiveerde functie definieert een HTTP-eindpunt. Deze eindpunten voeren functiecode uit die rechtstreeks verbinding kan maken met andere services of door bindingsextensies te gebruiken. U kunt de eindpunten samenstellen in een web-API.

U kunt ook een door HTTP geactiveerd functie-eindpunt gebruiken als webhookintegratie, zoals GitHub-webhooks. Op deze manier kunt u functies maken die gegevens verwerken van GitHub-gebeurtenissen. Zie GitHub-gebeurtenissen bewaken met behulp van een webhook met Azure Functions voor meer informatie.

Diagram van het verwerken van een HTTP-aanvraag met behulp van Azure Functions.

Zie deze codefragmenten voor voorbeelden:

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

Een serverloze werkstroom maken

Functies fungeren vaak als het rekenonderdeel in een serverloze werkstroomtopologie, zoals een Logic Apps-werkstroom. Je kunt ook langlopende georkestreerde processen maken met behulp van de Durable Functions-extensie. Zie het overzicht van Durable Functions voor meer informatie.

Een combinatiediagram van een reeks specifieke serverloze werkstromen met behulp van Azure Functions.

Reageren op wijzigingen in de database

Sommige processen moeten registreren, controleren of andere bewerkingen uitvoeren wanneer opgeslagen gegevens veranderen. Functiestriggers bieden een goede manier om op de hoogte te worden gesteld van gegevenswijzigingen om een dergelijke bewerking in eerste instantie te starten.

Diagram van een functie die wordt gebruikt om te reageren op databasewijzigingen.

Betrouwbare berichtsystemen maken

U kunt Functions gebruiken met Azure Messaging-services om geavanceerde gebeurtenisgestuurde berichtenoplossingen te maken.

U kunt bijvoorbeeld triggers in Azure Storage-wachtrijen gebruiken als een manier om een reeks functie-uitvoeringen te koppelen. Of gebruik servicebuswachtrijen en triggers voor een online bestelsysteem.

Diagram van Azure Functions in een betrouwbaar berichtensysteem.

Deze artikelen laten zien hoe u uitvoer naar een opslagwachtrij schrijft:

Deze artikelen laten zien hoe u kunt activeren vanuit een Azure Service Bus-wachtrij of -onderwerp.

Volgende stappen