Freigeben über


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 diese Systeme mithilfe von Azure Functions 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 zeigt 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 während des Uploads in das Hauptsystem zu überprüfen, zu transformieren und zu verarbeiten.

Diagramm eines Dateiuploadprozesses mithilfe von Azure Functions.

In den folgenden Tutorials wird ein Event Grid-basierter Blob-Auslöser verwendet, um Dateien in einem Blobcontainer zu verarbeiten:

Verwenden Sie beispielsweise den Blob-Trigger mit einem Ereignisabonnement für Blob-Container.

[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 Anzahl von Telemetriedaten. Azure Functions kann diese Daten nahezu in Echtzeit als Hotpath verarbeiten, um sie dann in Azure Cosmos DB zu speichern und in einem Analyse-Dashboard zu verwenden.

Ihre Funktionen können auch Ereignistrigger mit geringer Latenz wie Event Grid und Echtzeitausgaben wie SignalR verwenden, um Daten nahezu in 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);
}

Machine Learning und KI

Azure Functions bietet serverlose Computeressourcen, die in KI- und Azure-Dienste integriert werden, um die Erstellung von in der Cloud gehosteten intelligenten Anwendungen zu optimieren. Sie können das Funktionenprogrammiermodell verwenden, um Remotemodellinhaltsprotokollserver (MCP) zu erstellen und zu hosten und verschiedene KI-Tools zu implementieren. Weitere Informationen finden Sie unter Tools und MCP-Server.

Mit der Azure OpenAI-Bindungserweiterung können Sie KI-Features und -Verhaltensweisen des Azure OpenAI-Diensts wie z. B. die Generierung von Abruferweiterungen (RAG) in Ihre Funktionscodeausführungen integrieren. Weitere Informationen finden Sie unter Abrufunterstützte Generierung.

Eine Funktion kann auch ein TensorFlow-Modell oder Azure AI-Dienste aufrufen, um einen Datenstrom von Bildern zu verarbeiten und zu klassifizieren.

Diagramm eines maschinellen Lernens und eines KI-Prozesses mithilfe von Azure Functions.

Weitere Informationen finden Sie unter Verwenden von KI-Tools und -Modellen in Azure Functions.

Ausführen von geplanten Aufgaben

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

Siehe Erstellen einer Funktion im Azure-Portal, die in 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 durch 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 durch HTTP ausgelösten Funktionsendpunkt als Webhookintegration verwenden, z. B. GitHub-Webhooks. Auf diese Weise können Sie Funktionen erstellen, die Daten aus GitHub-Ereignissen verarbeiten. Weitere Informationen finden Sie unter Überwachen von GitHub-Ereignissen mithilfe eines Webhooks mit Azure-Funktionen.

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 langfristige Orchestrierungen mithilfe der Erweiterung "Durable Functions" erstellen. Weitere Informationen finden Sie unter Überblick über Durable Functions.

Ein Kombinationsdiagramm einer Reihe bestimmter serverloser Workflows mit Azure Functions.

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.

Erstellen zuverlässiger Messagingsysteme

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

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

Diagramm von Azure Functions in einem zuverlässigen Nachrichtensystem.

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

In diesen Artikeln wird gezeigt, wie man aus einer Azure Service Bus-Warteschlange oder einem Topic heraus triggern kann.

Nächste Schritte