Freigeben über


Azure Functions-Ausgabe aus Azure Stream Analytics

Azure Functions ist ein serverloser Computedienst, mit dem Sie Code bei Bedarf ausführen können, ohne die Infrastruktur explizit bereitstellen oder verwalten zu müssen. Sie können Code implementieren, der durch Ereignisse ausgelöst wird, die in Azure- oder Partnerdiensten auftreten. Diese Fähigkeit von Azure Functions, auf Trigger zu reagieren, macht sie zu einer natürlichen Ausgabe für Azure Stream Analytics. Mit diesem Ausgabeadapter können Benutzer Stream Analytics mit Azure Functions verbinden und als Reaktion auf eine Vielzahl von Ereignissen ein Skript oder einen Codeabschnitt ausführen.

Die Ausgabe von Azure Functions aus Stream Analytics ist in Microsoft Azure, betrieben von 21Vianet und Azure Deutschland (T-Systems International) nicht verfügbar. Die Verbindung mit Azure Functions in einem virtuellen Netzwerk (VNet) aus einem Stream Analytics-Auftrag, der in einem Multimandantencluster ausgeführt wird, wird ebenfalls nicht unterstützt.

Azure Stream Analytics ruft Azure Functions über HTTP-Trigger auf. Der Azure Functions-Ausgabeadapter ist mit den folgenden konfigurierbaren Eigenschaften verfügbar:

Eigenschaftsname Beschreibung
Funktions-App Der Name deiner Azure Functions-App.
Funktion Der Name der Funktion in Ihrer Azure Functions-App.
Schlüssel Wenn Sie eine Azure-Funktion aus einem anderen Abonnement verwenden möchten, können Sie dies tun, indem Sie den Schlüssel zum Zugriff auf Ihre Funktion angeben.
Maximale Batchgröße Eine Eigenschaft, mit der du die maximale Größe für jeden Ausgabe-Batch festlegen kannst, der an deine Azure-Funktion gesendet wird. Die Eingabeeinheit ist in Byte. Dieser Wert beträgt standardmäßig 262.144 Byte (256 KB).
Maximale Chargenanzahl Eine Eigenschaft, mit der man die maximale Anzahl der Ereignisse in jedem Batch angeben kann, die an Azure Functions gesendet werden. Der Standardwert ist 100.

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

Wenn Azure Stream Analytics eine 413 (http Request Entity Too Large)-Ausnahme von einer Azure-Funktion empfängt, reduziert sie die Größe der Batches, die sie an Azure Functions sendet. Verwenden Sie in Ihrem Azure-Funktionscode diese Ausnahme, um sicherzustellen, dass Azure Stream Analytics keine überdimensionalen Batches sendet. Stellen Sie außerdem sicher, dass die in der Funktion verwendeten maximalen Batchanzahl- und Größenwerte mit den im Stream Analytics-Portal eingegebenen Werten übereinstimmen.

Hinweis

Während der Testverbindung sendet Stream Analytics einen leeren Batch an Azure Functions, um zu testen, ob die Verbindung zwischen den beiden funktioniert. Stellen Sie sicher, dass Ihre Funktionen-App leere Batchanforderungen verarbeitet, um sicherzustellen, dass die Testverbindung erfolgreich ist.

Außerdem wird in einer Situation, in der kein Ereignis in einem Zeitfenster landen kann, keine Ausgabe generiert. Daher wird die computeResult-Funktion nicht aufgerufen. Dieses Verhalten entspricht den integrierten Aggregatfunktionen für Fenster.

Partitionierung

Der Partitionsschlüssel basiert auf der PARTITION BY-Klausel in der Abfrage. Die Anzahl der Ausgabeautoren 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 Stream Analytics-Ausgabeoptionen erhöht oder verringert werden.

Einschränkung

Azure Functions sollte seine Anforderung in weniger als 100 Sekunden abschließen, da der HTTP-Client nach 100 Sekunden zu einem Timeout kommt. Wenn es mehr als 100 Sekunden dauert, bis Azure Functions einen Datenbatch verarbeitet, gibt es ein Timeout, das einen Wiederholungsvorgang auslöst. Dieser Wiederholungsvorgang kann zu doppelten Daten führen, da Azure Functions die Daten erneut verarbeitet und möglicherweise dieselbe Ausgabe erzeugt, da sie teilweise in der vorherigen Anforderung ausgegeben wurde.

Codebeispiele

Die Azure Functions-Ausgabe kann verwendet werden, um Nachrichten in nicht unterstützte Datenbanken wie Redis weiterzuverteilen oder Tabellen in Azure SQL zu aktualisieren.

Nächste Schritte