Azure Functions Szenarien

Häufig erstellen Sie Systeme, die auf eine Reihe kritischer Ereignisse reagieren. Unabhängig davon, ob Sie eine Web-API erstellen, auf Datenbankänderungen reagieren oder Ereignisdatenströme oder Nachrichten verarbeiten, können Sie Azure Functions verwenden, um diese Systeme zu implementieren.

In vielen Fällen wird eine Funktion in ein Array mit Clouddiensten integriert, um Implementierungen mit großem Funktionsumfang zu erzielen. Die folgende Liste enthält allgemeine (aber nicht vollständige) Szenarien für Azure Functions.

Wählen Sie am Anfang des Artikels Ihre Entwicklungssprache.

Bearbeitung von Dateiuploads

Sie können Funktionen auf verschiedene Arten verwenden, um Dateien in oder aus einem BLOB-Speichercontainer zu verarbeiten. Weitere Informationen zu Optionen zum Auslösen in einem Blobcontainer finden Sie in der Dokumentation zu bewährten Methoden unter Arbeiten mit Blobs.

In einer Lösung für den Einzelhandel kann beispielsweise ein Partnersystem Produktkataloginformationen als Dateien in einen Blob Storage übermitteln. Sie können eine Blob-ausgelöste Funktion verwenden, um die Dateien beim Hochladen in das Hauptsystem zu validieren, zu transformieren und zu verarbeiten.

Diagramm eines Dateiuploadvorgangs mithilfe von Azure Functions.

In den folgenden Lernprogrammen wird ein Azure Blob-Trigger (Azure Event Grid basiert) zum Verarbeiten von Dateien in einem BLOB-Container verwendet:

Sie können beispielsweise den Blob-Trigger mit einem Ereignisabonnement für BLOB-Container verwenden:

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

Echtzeit-Datenstrom- und -Echtzeit-Ereignisverarbeitung

Cloudanwendungen, IoT-Geräte und Netzwerkgeräte generieren und sammeln eine große Menge von Kundendaten. Azure Functions können diese Daten in nahezu Echtzeit als Hot Path verarbeiten und diese dann in Azure Cosmos DB zur Verwendung in einem Analysedashboard speichern.

Ihre Funktionen können auch Ereignistrigger mit geringer Latenz wie "Event Grid" und Echtzeitausgaben wie SignalR verwenden, um Daten in nahezu Echtzeit zu verarbeiten.

Diagramm eines Echtzeitdatenstromprozesses mithilfe von Azure Functions.

Verwenden Sie beispielsweise den Event Hubs-Trigger, um aus einem Event Hub zu lesen, und die Ausgabebindung, um nach dem Auflösen und Transformieren der Ereignisse in einen Event Hub zu schreiben:

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

KI-gestützte Apps bauen

Nutzen Sie Azure Functions, um Daten und APIs für KI-Clients verfügbar zu machen und KI-Argumentation in ereignisgesteuerte Anwendungen hinzuzufügen.

Stellen Sie Ihre Daten und APIs KI zur Verfügung.

KI-Kunden und -Agenten benötigen Werkzeuge, die einen kontrollierten Zugriff auf Geschäftsdaten, APIs und Anwendungs-Logik bieten. Sie können Azure Functions nutzen, um entfernte Model Context Protocol (MCP)-Server zu erstellen und zu hosten, die diese Fähigkeiten als Werkzeuge bereitstellen. Functions bietet verwaltetes Hosting, Authentifizierung, Netzwerk, Überwachung und Skalierung für Ihren MCP-Server.

Zum Beispiel könnten Sie Produktinventar, Kundenkontodaten oder eine bestehende Geschäfts-API als Werkzeuge bereitstellen, die ein KI-Kunde entdecken und aufrufen kann.

Diagramm zeigt einen KI-Client, der einen entfernten MCP-Server aufruft, der von Azure Functions gehostet wird und kontrollierten Zugriff auf Geschäfts-APIs und Daten bietet.

Fügen Sie KI-Argumentation zu Geschäftsveranstaltungen hinzu

Einige Geschäftsereignisse erfordern ein logisches Schlussfolgern, bevor Ihre Anwendung entscheiden kann, was als Nächstes zu tun ist. Die gehosteten Fähigkeiten von Azure Functions ermöglichen es Ihnen, KI-gestützte Arbeit in Markdown zu definieren und sie aus Zeitplänen, HTTP-Anfragen, Warteschlangennachrichten, Speicheränderungen und anderen Ereignissen zu starten. Die gehostete Fähigkeit kann Werkzeuge und Dienste aufrufen, bevor sie ein Ergebnis zurückgibt oder eine Aktion ausführt.

Zum Beispiel kann eine gehostete Fähigkeit eine eingehende Beschwerde klassifizieren und an die entsprechende Warteschlange weiterleiten. Für komplexere Aufgaben kann ein dynamischer Arbeitsablauf einen langlebigen, mehrstufigen Plan schaffen, der Aufgaben parallel ausführt, auf externe Bedingungen wartet und nach dem Neustart des Mitarbeiters fortgesetzt wird.

Diagramm, das Ereignisse, Nachrichten und Zeitpläne zeigt, die einen gehosteten Skill auf Azure Functions starten, der ein Foundry-Modell verwendet und Werkzeuge, APIs, Connectors und Aktionen aufrufen kann.

Ausführen von geplanten Aufgaben

Mithilfe von Functions können Sie Ihren Code basierend auf einem cron-Zeitplan ausführen, den Sie selbst festlegen.

Weitere Informationen finden Sie unter Erstellen Sie eine Funktion im Azure-Portal, die nach einem Zeitplan ausgeführt wird.

Sie können beispielsweise eine Kundendatenbank für Finanzdienstleistungen für doppelte Einträge alle 15 Minuten analysieren, um zu vermeiden, dass mehrere Kommunikationen an denselben Kunden gehen.

Diagramm eines geplanten Vorgangs, bei dem eine Funktion alle 15 Minuten einträge auf der Grundlage der Geschäftslogik bereinigt.

Beispiele finden Sie in den folgenden Codeausschnitten:

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

Erstellen einer skalierbaren Web-API

Eine HTTP-ausgelöste Funktion definiert einen HTTP-Endpunkt. Diese Endpunkte führen Funktionscode aus, der direkt oder mithilfe von Bindungserweiterungen eine Verbindung mit anderen Diensten herstellen kann. Sie können die Endpunkte in einer webbasierten API zusammenstellen.

Sie können auch einen HTTP-ausgelösten Funktionsendpunkt als Webhook-Integration verwenden, z. B. GitHub Webhooks. Auf diese Weise können Sie Funktionen erstellen, die Daten aus GitHub Ereignissen verarbeiten. Weitere Informationen finden Sie unter Azure Functions HTTP-Trigger.

Diagramm der Verarbeitung einer HTTP-Anforderung mithilfe von Azure Functions.

Beispiele finden Sie in den folgenden Codeausschnitten:

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

Entwickeln eines serverlosen Workflows

Funktionen dienen häufig als Computekomponente in einer serverlosen Workflowtopologie, z. B. einem Logic Apps-Workflow. Sie können auch lang dauernde Orchestrierungen mithilfe der Durable Functions Erweiterung erstellen. Weitere Informationen finden Sie unter Durable Functions Overview.

A-Kombinationsdiagramm einer Reihe bestimmter serverloser Workflows mithilfe von Azure Functions.

Sehen Sie sich die folgenden Beispiele an:

Reagieren auf Datenbankänderungen

Einige Prozesse müssen beim Ändern gespeicherter Daten protokollieren, überwachen oder andere Vorgänge ausführen. Functions-Trigger bieten eine gute Möglichkeit, über Datenänderungen benachrichtigt zu werden, um einen solchen Vorgang zu starten.

Diagramm einer Funktion, die verwendet wird, um auf Datenbankänderungen zu reagieren.

Sehen Sie sich die folgenden Beispiele an:

Erstellen zuverlässiger Messagingsysteme

Sie können Funktionen mit Azure Messagingdiensten verwenden, um erweiterte ereignisgesteuerte Messaginglösungen zu erstellen.

Sie können beispielsweise Trigger für Azure Storage Warteschlangen verwenden, um eine Reihe von Funktionsausführungen zu verketten. Alternativ können Sie für ein Onlinebestellungssystem Service Bus-Warteschlangen und Trigger verwenden.

Diagramm der Azure Functions in einem zuverlässigen Nachrichtensystem.

In diesen Artikeln wird gezeigt, wie Sie die Ausgabe in eine Speicherwarteschlange schreiben:

In diesen Artikeln wird beschrieben, wie man von einer Azure Service Bus-Warteschlange oder einem Topic triggert.

Nächster Schritt