Azure Functions uitvoer van Azure Stream Analytics

Azure Functions is een serverloze rekenservice die u kunt gebruiken om code op aanvraag uit te voeren zonder expliciet infrastructuur in te richten of te beheren. Hiermee kunt u code implementeren die wordt geactiveerd door gebeurtenissen die plaatsvinden in Azure- of partnerservices. Deze mogelijkheid van Azure Functions om te reageren op triggers maakt het een natuurlijke uitvoer voor Azure Stream Analytics. Met deze uitvoeradapter kunnen gebruikers Stream Analytics verbinden met Azure Functions en een script of stukje code uitvoeren als reactie op verschillende gebeurtenissen.

Azure Functions uitvoer van Stream Analytics is niet beschikbaar in Microsoft Azure beheerd door 21Vianet en Azure Duitsland (T-Systems International). Verbinding met Azure Functions in een virtueel netwerk (VNet) vanuit een Stream Analytics-taak die wordt uitgevoerd in een cluster met meerdere tenants, wordt ook niet ondersteund.

Azure Stream Analytics roept Azure Functions aan via HTTP-triggers. De Azure Functions uitvoeradapter is beschikbaar met de volgende configureerbare eigenschappen:

Naam van eigenschap Beschrijving
Functie-app De naam van uw Azure Functions-app.
Functie De naam van de functie in uw Azure Functions-app.
Sleutel Als u een Azure-functie uit een ander abonnement wilt gebruiken, kunt u dit doen door de sleutel op te geven voor toegang tot uw functie.
Maximale batchgrootte Een eigenschap waarmee u de maximale grootte kunt instellen voor elke uitvoerbatch die naar uw Azure-functie wordt verzonden. De invoereenheid is in bytes. Deze waarde is standaard 262.144 bytes (256 kB).
Maximumaantal batches Een eigenschap waarmee u het maximum aantal gebeurtenissen in elke batch kunt opgeven dat naar Azure Functions wordt verzonden. De standaardwaarde is 100.

Azure Stream Analytics verwacht HTTP-status 200 van de Functions-app voor batches die zijn verwerkt.

Wanneer Azure Stream Analytics een uitzondering 413 (http-aanvraagentiteit te groot) ontvangt van een Azure-functie, wordt de grootte verkleind van de batches die naar Azure Functions worden verzonden. Gebruik deze uitzondering in uw Azure-functiecode om ervoor te zorgen dat Azure Stream Analytics geen te grote batches verzendt. Zorg er ook voor dat het maximale aantal batches en de groottewaarden die in de functie worden gebruikt, consistent zijn met de waarden die zijn ingevoerd in de Stream Analytics-portal.

Notitie

Tijdens de testverbinding verzendt Stream Analytics (POST) een lege batch naar Azure Functions om te testen of de verbinding tussen de twee werkt. Zorg ervoor dat uw Functions-app lege batchaanvragen verwerkt om ervoor te zorgen dat de testverbinding slaagt.

In een situatie waarin er geen gebeurtenis in een tijdvenster binnenkomt, wordt er ook geen uitvoer gegenereerd. Als gevolg hiervan wordt de functie computeResult niet aangeroepen. Dit gedrag is consistent met de ingebouwde statistische vensterfuncties.

Partitionering

De partitiesleutel is gebaseerd op de component PARTITION BY in de query. Het aantal uitvoerschrijvers volgt de invoerpartitionering voor volledig geparallelliseerde query's.

Grootte van uitvoerbatch

De standaard batchgrootte is 262.144 bytes (256 kB). Het standaardgebeurtenisaantal per batch is 100. De batchgrootte kan worden geconfigureerd en kan worden verhoogd of verlaagd in de uitvoeropties van Stream Analytics.

Beperking

Azure Functions moet de aanvraag binnen 100 seconden voltooien, omdat er na 100 seconden een time-out optreedt voor de HTTP-client. Als het meer dan 100 seconden duurt voordat Azure Functions een batch gegevens verwerkt, is er een time-out die een nieuwe poging activeert. Deze nieuwe poging kan leiden tot dubbele gegevens omdat Azure Functions de gegevens opnieuw verwerkt en mogelijk dezelfde uitvoer produceert, omdat deze mogelijk gedeeltelijk is uitgevoerd in de vorige aanvraag

Codevoorbeelden

De uitvoer van Azure Functions kan worden gebruikt om berichten door te sturen naar niet-ondersteunde databases, zoals Redis, of om tabellen bij te werken in Azure SQL.

Volgende stappen