Udostępnij za pośrednictwem


Azure Functions danych wyjściowych z usługi Azure Stream Analytics

Azure Functions to bezserwerowa usługa obliczeniowa, której można użyć do uruchamiania kodu na żądanie bez konieczności jawnego aprowizowania infrastruktury ani zarządzania nią. Umożliwia zaimplementowanie kodu wyzwalanego przez zdarzenia występujące na platformie Azure lub w usługach partnerskich. Ta możliwość Azure Functions reagowania na wyzwalacze sprawia, że jest to naturalne dane wyjściowe dla usługi Azure Stream Analytics. Ta karta wyjściowa umożliwia użytkownikom łączenie usługi Stream Analytics z Azure Functions i uruchamianie skryptu lub fragmentu kodu w odpowiedzi na różne zdarzenia.

Azure Functions dane wyjściowe z usługi Stream Analytics nie są dostępne na platformie Microsoft Azure obsługiwanej przez firmę 21Vianet i platformę Azure (T-Systems International). Połączenie z Azure Functions wewnątrz sieci wirtualnej (VNet) z zadania usługi Stream Analytics uruchomionego w klastrze z wieloma dzierżawami również nie jest obsługiwane.

Usługa Azure Stream Analytics wywołuje Azure Functions za pośrednictwem wyzwalaczy HTTP. Adapter wyjściowy Azure Functions jest dostępny z następującymi konfigurowalnymi właściwościami:

Nazwa właściwości Opis
Aplikacja funkcji Nazwa aplikacji Azure Functions.
Funkcja Nazwa funkcji w aplikacji Azure Functions.
Klucz Jeśli chcesz użyć funkcji platformy Azure z innej subskrypcji, możesz to zrobić, podając klucz dostępu do funkcji.
Maksymalny rozmiar partii Właściwość, która umożliwia ustawienie maksymalnego rozmiaru dla każdej partii wyjściowej wysyłanej do funkcji platformy Azure. Jednostka wejściowa jest wyrażona w bajtach. Domyślnie ta wartość to 262 144 bajtów (256 KB).
Maksymalna liczba partii Właściwość umożliwiająca określenie maksymalnej liczby zdarzeń w każdej partii wysyłanej do Azure Functions. Wartość domyślna to 100.

Usługa Azure Stream Analytics oczekuje stanu HTTP 200 z aplikacji usługi Functions dla partii, które zostały pomyślnie przetworzone.

Gdy usługa Azure Stream Analytics otrzyma wyjątek 413 ("http Request Entity Too Large") od funkcji platformy Azure, zmniejsza rozmiar partii wysyłanych do Azure Functions. W kodzie funkcji platformy Azure użyj tego wyjątku, aby upewnić się, że usługa Azure Stream Analytics nie wysyła ponadwymiarowych partii. Upewnij się również, że maksymalna liczba partii i wartości rozmiaru używane w funkcji są zgodne z wartościami wprowadzonymi w portalu usługi Stream Analytics.

Uwaga

Podczas testu połączenia usługa Stream Analytics wysyła (POST) pustą partię do Azure Functions, aby sprawdzić, czy połączenie między nimi działa. Upewnij się, że aplikacja usługi Functions obsługuje puste żądania wsadowe, aby upewnić się, że połączenie testowe przebiegło pomyślnie.

Ponadto w sytuacji, gdy w przedziale czasu nie ma żadnego zdarzenia, żadne dane wyjściowe nie są generowane. W związku z tym funkcja computeResult nie jest wywoływana. To zachowanie jest zgodne z wbudowanymi funkcjami agregacji okiennych.

Partycjonowanie

Klucz partycji jest oparty na klauzuli PARTITION BY w zapytaniu. Liczba składników zapisywania danych wyjściowych jest zgodna z partycjonowaniem danych wejściowych dla w pełni równoległych zapytań.

Rozmiar partii wyjściowej

Domyślny rozmiar partii to 262 144 bajtów (256 KB). Domyślna liczba zdarzeń na partię wynosi 100. Rozmiar partii można konfigurować i można go zwiększyć lub zmniejszyć w opcjach danych wyjściowych usługi Stream Analytics.

Ograniczenie

Azure Functions powinno zakończyć żądanie w czasie poniżej 100 sekund, ponieważ klient HTTP upłynął po upływie 100 sekund. Jeśli przetwarzanie partii danych trwa dłużej niż 100 sekund, w przypadku Azure Functions nastąpi przekroczenie limitu czasu, który spowoduje wyzwolenie ponawiania próby. Ta ponowna próba może spowodować zduplikowanie danych, ponieważ Azure Functions ponownie przetworzy dane i potencjalnie wygenerować te same dane wyjściowe, ponieważ mogły zostać wygenerowane częściowo w poprzednim żądaniu

Przykłady kodu

Dane wyjściowe Azure Functions mogą służyć do przekazywania komunikatów do nieobsługiwanych baz danych, takich jak Redis, lub aktualizowania tabel w Azure SQL.

Następne kroki