Share via


Azure Functions-Ausgabe für Azure Stream Analytics

Azure Functions ist ein serverloser Computedienst, mit dem Sie Code bedarfsgesteuert ausführen können, ohne eine explizite Infrastruktur bereitstellen oder verwalten zu müssen. Mit diesem Dienst können Sie Codes implementieren, die durch in Azure- oder Partnerdiensten auftretende Ereignisse ausgelöst werden. Aufgrund der Möglichkeit, auf Trigger zu antworten, ist Azure Functions die ideale Ausgabe für Azure Stream Analytics. Mithilfe dieses Ausgabeadapters können Benutzer eine Verbindung zwischen Stream Analytics und Azure Functions herstellen und als Reaktion auf verschiedenste Ereignisse ein Skript oder einen Codeausschnitt ausführen.

Die Azure Functions-Ausgabe von Stream Analytics ist in Microsoft Azure operated by 21Vianet und Azure Deutschland (T-Systems International) nicht verfügbar. Die Verbindung zu Azure Functions innerhalb eines virtuellen Netzwerks (VNet) von einem Stream Analytics-Auftrag aus, der in einem Cluster mit mehreren Mandanten ausgeführt wird, wird ebenfalls nicht unterstützt.

Azure Stream Analytics ruft Azure Functions über HTTP-Trigger auf. Der Azure Functions-Ausgabeadapter wird mit folgenden konfigurierbaren Eigenschaften zur Verfügung gestellt:

Eigenschaftenname BESCHREIBUNG
Funktionen-App Der Name der Azure Functions-App.
Funktion Der Name der Funktion in der Azure Functions-App.
Schlüssel Wenn Sie eine Azure-Funktion aus einem anderen Abonnement verwenden möchten, können Sie dazu den Schlüssel für den Zugriff auf Ihre Funktion angeben.
Max Batch Size Eine Eigenschaft, mit der Sie die maximale Größe für jeden Ausgabebatch festlegen können, der an Ihre Azure-Funktion gesendet wird. Die Eingabeeinheit ist Bytes. Standardmäßig ist dieser Wert auf 262,144 Bytes (256 KB) festgelegt.
Max Batch Count Eine Eigenschaft, mit der Sie die maximale Anzahl von Ereignissen in jedem Batch angeben können, die an Azure Functions gesendet werden. Der Standardwert ist 100.

Azure Stream Analytics erwartet den HTTP-Status 200 von der Functions-App für Batches, die erfolgreich verarbeitet wurden.

Die Größe der an Azure Functions gesendeten Batches wird verringert, wenn in Azure Stream Analytics Ausnahme 413 (HTTP-Anforderungseinheit zu groß) durch Azure Functions auftritt. Verwenden Sie in Ihrem Azure-Funktionscode diese Ausnahme, um sicherzustellen, dass Azure Stream Analytics keine übermäßig großen Batches sendet. Stellen Sie außerdem sicher, dass die Werte für die maximal zulässige Batchanzahl und -größe in der Funktion mit den Werten übereinstimmen, die im Stream Analytics-Portal eingegeben wurden.

Hinweis

Während der Testverbindung sendet (POST) Stream Analytics einen leeren Batch an Azure Functions, um zu testen, ob die Verbindung zwischen den beiden funktioniert. Stellen Sie sicher, dass Ihre Functions-App Anforderungen für leere Batches verarbeitet, um sicherzustellen, dass die Testverbindung erfolgreich ist.

Zudem wird in Fällen, in denen kein Ereignis in einem Zeitfenster auftritt, keine Ausgabe generiert. Als Ergebnis wird die computeResult-Funktion nicht aufgerufen. Dieses Verhalten entspricht den integrierten Aggregatfunktionen im Fenstermodus.

Partitionierung

Der Partitionsschlüssel basiert auf der PARTITION BY-Klausel in der Abfrage. Die Anzahl der Ausgabeschreiber folgt der Eingabepartitionierung für vollständig parallelisierte Abfragen.

Ausgabebatchgröße

Die Standardbatchgröße beträgt 262.144 Bytes (256 KB). Die Standardereignisanzahl pro Batch beträgt 100. Die Batchgröße ist konfigurierbar und kann in den Ausgabeoptionen von Stream Analytics erhöht oder verringert werden.

Einschränkung

Azure Functions-Anforderungen sollten in weniger als 100 Sekunden abgeschlossen werden, da für den HTTP-Client nach 100 Sekunden ein Timeout auftritt. Wenn es mehr als 100 Sekunden dauert, bis Azure Functions einen Datenbatch verarbeitet hat, tritt ein Timeout auf, der eine Wiederholung auslöst. Diese Wiederholung kann zu doppelten Daten führen, da Azure Functions die Daten erneut verarbeitet und potenziell die gleiche Ausgabe erzeugt, da sie möglicherweise in der vorherigen Anforderung teilweise ausgegeben wurde.

Codebeispiele

Die Azure Functions-Ausgabe kann verwendet werden, um Nachrichten an nicht unterstützte Datenbanken (etwa Redis) weiterzuleiten oder Tabellen in Azure SQL zu aktualisieren.

Nächste Schritte