Udostępnij za pośrednictwem


Samouczek: uruchamianie usługi Azure Functions z zadań usługi Azure Stream Analytics

W tym samouczku utworzysz zadanie usługi Azure Stream Analytics, które odczytuje zdarzenia z usługi Azure Event Hubs, uruchamia zapytanie dotyczące danych zdarzenia, a następnie wywołuje funkcję platformy Azure, która zapisuje w wystąpieniu usługi Azure Cache for Redis.

Zrzut ekranu przedstawiający relację między usługami platformy Azure w rozwiązaniu.

Uwaga

  • Usługę Azure Functions można uruchomić z usługi Azure Stream Analytics, konfigurując usługę Functions jako jedno z ujść (danych wyjściowych) do zadania usługi Stream Analytics. Usługa Functions to sterowane zdarzeniami środowisko obliczeń na żądanie, które umożliwia implementowanie kodu wyzwalanego przez zdarzenia występujące na platformie Azure lub w usługach innych firm. Dzięki możliwości reagowania na wyzwalacze usługa Functions stanowi naturalne wyjście dla zadań usługi Stream Analytics.
  • Usługa Stream Analytics wywołuje usługę Functions za pomocą wyzwalaczy protokołu HTTP. Adapter wyjścia usługi Functions umożliwia użytkownikom połączenie usługi Functions z usługą Stream Analytics, tak aby można było wyzwalać zdarzenia na podstawie zapytań usługi Stream Analytics.
  • Połączenie z usługą Azure Functions wewnątrz sieci wirtualnej (VNet) z zadania usługi Stream Analytics uruchomionego w klastrze wielodostępnym nie jest obsługiwane.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie wystąpienia usługi Azure Event Hubs
  • Tworzenie wystąpienia pamięci podręcznej Azure Cache for Redis
  • Tworzenie funkcji platformy Azure
  • Tworzenie zadania usługi Stream Analytics
  • Konfigurowanie centrum zdarzeń jako danych wejściowych i funkcji jako danych wyjściowych
  • Uruchamianie zadania usługi Stream Analytics
  • Sprawdzanie pamięci podręcznej Azure Cache for Redis pod kątem wyników

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że zostały wykonane następujące kroki:

Logowanie się do platformy Azure

Zaloguj się w witrynie Azure Portal.

Tworzenie centrum zdarzeń

Aby usługa Stream Analytics mogła analizować strumień danych fałszywych wywołań, musisz wysłać przykładowe dane do centrum zdarzeń. W tym samouczku dane są wysyłane na platformę Azure przy użyciu usługi Azure Event Hubs.

Wykonaj następujące kroki, aby utworzyć centrum zdarzeń i wysłać dane wywołania do tego centrum zdarzeń:

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz pozycję Wszystkie usługi w menu po lewej stronie, wybierz pozycję Internet rzeczy, mysz myszy nad usługą Event Hubs, a następnie wybierz przycisk + (Dodaj).

    Zrzut ekranu przedstawiający stronę tworzenia usługi Event Hubs.

  3. Na stronie Tworzenie przestrzeni nazw wykonaj następujące kroki:

    1. Wybierz subskrypcję platformy Azure, w której chcesz utworzyć centrum zdarzeń.

    2. W obszarze Grupa zasobów wybierz pozycję Utwórz nową i wprowadź nazwę grupy zasobów. Przestrzeń nazw usługi Event Hubs jest tworzona w tej grupie zasobów.

    3. W polu Nazwa przestrzeni nazw wprowadź unikatową nazwę przestrzeni nazw usługi Event Hubs.

    4. W polu Lokalizacja wybierz region, w którym chcesz utworzyć przestrzeń nazw.

    5. W obszarze Warstwa cenowa wybierz pozycję Standardowa.

    6. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

      Zrzut ekranu przedstawiający stronę Tworzenie przestrzeni nazw.

    7. Na stronie Przeglądanie i tworzenie kreatora tworzenia przestrzeni nazw wybierz pozycję Utwórz w dolnej części strony po przejrzeniu wszystkich ustawień.

  4. Po pomyślnym wdrożeniu przestrzeni nazw wybierz pozycję Przejdź do zasobu , aby przejść do strony Przestrzeń nazw usługi Event Hubs.

  5. Na stronie Przestrzeń nazw usługi Event Hubs wybierz pozycję +Centrum zdarzeń na pasku poleceń.

    Zrzut ekranu przedstawiający przycisk Dodaj centrum zdarzeń na stronie Przestrzeń nazw usługi Event Hubs.

  6. Na stronie Tworzenie centrum zdarzeń wprowadź nazwę centrum zdarzeń. Ustaw wartość liczba partycji na 2. Użyj opcji domyślnych w pozostałych ustawieniach i wybierz pozycję Przejrzyj i utwórz.

    Zrzut ekranu przedstawiający stronę Tworzenie centrum zdarzeń.

  7. Na stronie Przeglądanie i tworzenie wybierz pozycję Utwórz w dolnej części strony. Następnie poczekaj na pomyślne zakończenie wdrożenia.

Udzielanie dostępu do centrum zdarzeń i pobieranie parametrów połączenia

Aby aplikacja mogła wysyłać dane do usługi Azure Event Hubs, centrum zdarzeń musi mieć zasady umożliwiające dostęp. Zasady dostępu generują parametry połączenia, które zawierają informacje o autoryzacji.

  1. Na stronie Przestrzeń nazw usługi Event Hubs wybierz pozycję Zasady dostępu współdzielonego w menu po lewej stronie.

  2. Wybierz pozycję RootManageSharedAccessKey z listy zasad.

    Zrzut ekranu przedstawiający stronę Zasady dostępu współdzielonego.

  3. Następnie wybierz przycisk kopiowania obok pozycji Parametry połączenia — klucz podstawowy.

  4. Wklej parametry połączenia do edytora tekstu. Te parametry połączenia będą potrzebne w następnej sekcji.

    Parametry połączenia wyglądają następująco:

    Endpoint=sb://<Your event hub namespace>.servicebus.windows.net/;SharedAccessKeyName=<Your shared access policy name>;SharedAccessKey=<generated key>

    Zwróć uwagę, że parametry połączenia zawiera wiele par klucz-wartość oddzielonych średnikami: Endpoint, SharedAccessKeyName i SharedAccessKey.

Uruchamianie aplikacji generatora zdarzeń

Przed uruchomieniem aplikacji TelcoGenerator należy ją skonfigurować do przesyłania danych do usługi Azure Event Hubs utworzonej wcześniej.

  1. Wyodrębnij zawartość pliku TelcoGenerator.zip.

  2. TelcoGenerator\TelcoGenerator\telcodatagen.exe.config Otwórz plik w wybranym edytorze tekstów: istnieje więcej niż jeden .config plik, dlatego upewnij się, że otworzysz odpowiedni plik.

  3. Zaktualizuj element <appSettings> w pliku config przy użyciu następujących szczegółów:

    • Ustaw wartość klucza EventHubName na wartość EntityPath na końcu parametry połączenia.
    • Ustaw wartość klucza Microsoft.ServiceBus.ConnectionString na parametry połączenia na przestrzeń nazw. Jeśli używasz parametry połączenia do centrum zdarzeń, a nie przestrzeni nazw, usuń EntityPath wartość (;EntityPath=myeventhub) na końcu. Nie zapomnij usunąć średnika poprzedzającego wartość EntityPath.
  4. Zapisz plik.

  5. Następnie otwórz okno polecenia i przejdź do folderu, w którym znajduje się wyodrębniona aplikacja TelcoGenerator. Wprowadź następujące polecenie:

    .\telcodatagen.exe 1000 0.2 2
    

    To polecenie przyjmuje następujące parametry:

    • Liczba rekordów danych połączeń na godzinę.
    • Procentowe prawdopodobieństwo oszustwa, czyli jak często aplikacja powinna symulować fałszywe połączenia. Wartość 0,2 oznacza, że około 20% rekordów połączeń wygląda na fałszywe.
    • Czas trwania w godzinach, czyli liczba godzin, przez jaką aplikacja ma być uruchomiona. Aplikację można również zatrzymać w dowolnym momencie, kończąc proces (Ctrl+C) w wierszu polecenia.

    Po kilku sekundach aplikacja rozpocznie wyświetlanie rekordów połączeń telefonicznych na ekranie w miarę wysyłania ich do centrum zdarzeń. Dane połączenia telefonicznego zawierają następujące pola:

    Nagraj Definicja
    CallrecTime Znacznik czasu godziny rozpoczęcia połączenia.
    SwitchNum Centrala telefoniczna używana do wykonania połączenia. W tym przykładzie przełączniki są ciągami reprezentującymi kraj/region pochodzenia (USA, Chiny, Zjednoczone Królestwo, Niemcy lub Australia).
    CallingNum Numer telefonu dzwoniącego.
    CallingIMSI Numer IMSI (International Mobile Subscriber Identity). Unikatowy identyfikator dzwoniącego.
    CalledNum Numer telefonu odbiorcy połączenia.
    CalledIMSI Numer IMSI (International Mobile Subscriber Identity). Unikatowy identyfikator odbiorcy połączenia.

Tworzenie zadania usługi Stream Analytics

Teraz, gdy masz strumień zdarzeń połączeń, możesz utworzyć zadanie usługi Stream Analytics, które odczytuje dane z centrum zdarzeń.

  1. Aby utworzyć zadanie usługi Stream Analytics, przejdź do witryny Azure Portal.
  2. Wybierz pozycję Utwórz zasób i wyszukaj zadanie usługi Stream Analytics. Wybierz kafelek Zadanie usługi Stream Analytics i wybierz pozycję Utwórz.
  3. Na stronie Nowe zadanie usługi Stream Analytics wykonaj następujące kroki:
    1. W polu Subskrypcja wybierz subskrypcję zawierającą przestrzeń nazw usługi Event Hubs.

    2. W obszarze Grupa zasobów wybierz utworzoną wcześniej grupę zasobów.

    3. W sekcji Szczegóły wystąpienia w polu Nazwa wprowadź unikatową nazwę zadania usługi Stream Analytics.

    4. W polu Region wybierz region, w którym chcesz utworzyć zadanie usługi Stream Analytics. Zalecamy umieszczenie zadania i centrum zdarzeń w tym samym regionie, aby uzyskać najlepszą wydajność i aby nie płacić za przesyłanie danych między regionami.

    5. W obszarze Środowisko hostingu< wybierz pozycję Chmura , jeśli nie została jeszcze wybrana. Zadania usługi Stream Analytics można wdrożyć w chmurze lub na urządzeniu brzegowym. Chmura umożliwia wdrażanie w chmurze platformy Azure, a usługa Edge umożliwia wdrażanie na urządzeniu usługi IoT Edge.

    6. W obszarze Jednostki przesyłania strumieniowego wybierz pozycję 1. Jednostki przesyłania strumieniowego reprezentują zasoby obliczeniowe, które są wymagane do wykonania zadania. Domyślnie to ustawienie ma wartość 1. Aby dowiedzieć się więcej na temat skalowania jednostek przesyłania strumieniowego, zobacz artykuł Understanding and adjusting streaming units (Opis i dostosowywanie jednostek przesyłania strumieniowego).

    7. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

      Zrzut ekranu przedstawiający stronę Tworzenie zadania usługi Azure Stream Analytics.

  4. Na stronie Przeglądanie i tworzenie przejrzyj ustawienia, a następnie wybierz pozycję Utwórz, aby utworzyć zadanie usługi Stream Analytics.
  5. Po wdrożeniu zadania wybierz pozycję Przejdź do zasobu , aby przejść do strony zadania usługi Stream Analytics.

Konfigurowanie danych wejściowych zadania

Następnym krokiem jest określenie źródła danych wejściowych dla zadania w celu odczytywania danych za pomocą centrum zdarzeń utworzonego w poprzedniej sekcji.

  1. Na stronie zadania usługi Stream Analytics w sekcji Topologia zadań w menu po lewej stronie wybierz pozycję Dane wejściowe.

  2. Na stronie Dane wejściowe wybierz pozycję + Dodaj dane wejściowe i Centrum zdarzeń.

    Zrzut ekranu przedstawiający stronę Dane wejściowe dla zadania usługi Stream Analytics.

  3. Na stronie Centrum zdarzeń wykonaj następujące kroki:

    1. W polu Alias wejściowy wprowadź wartość CallStream. Alias wejściowy to przyjazna nazwa identyfikująca dane wejściowe. Alias danych wejściowych może zawierać tylko znaki alfanumeryczne, łączniki i podkreślenia oraz musi składać się z od 3 do 63 znaków.

    2. W polu Subskrypcja wybierz subskrypcję platformy Azure, w której utworzono centrum zdarzeń. Centrum zdarzeń może znajdować się w tej samej subskrypcji co zadanie usługi Stream Analytics lub w innej.

    3. W obszarze Przestrzeń nazw usługi Event Hubs wybierz przestrzeń nazw usługi Event Hubs utworzoną w poprzedniej sekcji. Wszystkie przestrzenie nazw dostępne w bieżącej subskrypcji są wymienione na liście rozwijanej.

    4. W polu Nazwa centrum zdarzeń wybierz centrum zdarzeń utworzone w poprzedniej sekcji. Wszystkie centra zdarzeń dostępne w wybranej przestrzeni nazw są wyświetlane na liście rozwijanej.

    5. W przypadku grupy odbiorców centrum zdarzeń zachowaj wybraną opcję Utwórz nową , aby nowa grupa odbiorców została utworzona w centrum zdarzeń. Zalecamy używanie odrębnej grupy odbiorców dla każdego zadania usługi Stream Analytics. Jeśli grupa odbiorców nie zostanie określona, zadanie usługi Stream Analytics używa $Default grupy odbiorców. Jeśli zadanie zawiera samosprzężenia lub zawiera wiele danych wejściowych, niektóre dane wejściowe mogą być później odczytywane przez więcej niż jednego czytnika. Ta sytuacja wpływa na liczbę czytelników w jednej grupie odbiorców.

    6. W obszarze Tryb uwierzytelniania wybierz pozycję Parametry połączenia. Łatwiej jest przetestować samouczek przy użyciu tej opcji.

    7. W polu Nazwa zasad centrum zdarzeń wybierz pozycję Użyj istniejącej, a następnie wybierz utworzone wcześniej zasady.

    8. Wybierz pozycję Zapisz w dolnej części strony.

      Zrzut ekranu przedstawiający stronę konfiguracji usługi Event Hubs dla danych wejściowych.

Tworzenie wystąpienia pamięci podręcznej Azure Cache for Redis

  1. Tworzenie pamięci podręcznej w ramach usługi Azure Cache for Redis za pomocą procedury opisanej w artykule Tworzenie pamięci podręcznej.

  2. Po utworzeniu pamięci podręcznej w obszarze Ustawienia wybierz pozycję Klucze dostępu. Zanotuj wartość Podstawowe parametry połączenia.

    Zrzut ekranu przedstawiający wybór elementu menu Klucz dostępu.

Tworzenie funkcji w usłudze Azure Functions, która może zapisywać dane w pamięci podręcznej Azure Cache for Redis

  1. Zobacz sekcję Tworzenie aplikacji funkcji w dokumentacji usługi Functions. Ten przykład został skompilowany na:

  2. Utwórz domyślną aplikację funkcji HttpTrigger w programie Visual Studio Code, wykonując czynności opisane w tym samouczku. Używane są następujące informacje: język: , runtime: C#.NET 6 (w obszarze funkcji v4), szablon: HTTP trigger.

  3. Zainstaluj bibliotekę klienta Redis, uruchamiając następujące polecenie w terminalu znajdującym się w folderze projektu:

    dotnet add package StackExchange.Redis --version 2.2.88
    
  4. RedisConnectionString Dodaj elementy i RedisDatabaseIndex w Values sekcji local.settings.jsonpliku , wypełniając parametry połączenia serwera docelowego:

    {
        "IsEncrypted": false,
        "Values": {
            "AzureWebJobsStorage": "",
            "FUNCTIONS_WORKER_RUNTIME": "dotnet",
            "RedisConnectionString": "Your Redis Connection String",
            "RedisDatabaseIndex":"0"
        }
    }
    

    Indeks bazy danych Redis jest liczbą z zakresu od 0 do 15 identyfikującą bazę danych w wystąpieniu.

  5. Zastąp całą funkcję (plik .cs w projekcie) następującym fragmentem kodu. Zaktualizuj własną przestrzeń nazw, nazwę klasy i nazwę funkcji:

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Extensions.Http;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.Logging;
    using Newtonsoft.Json;
    
    using StackExchange.Redis;
    
    namespace Company.Function
    {
        public static class HttpTrigger1{
            [FunctionName("HttpTrigger1")]
            public static async Task<IActionResult> Run(
                [HttpTrigger(AuthorizationLevel.Function, "get","post", Route = null)] HttpRequest req,
                ILogger log)
            {
                // Extract the body from the request
                string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                if (string.IsNullOrEmpty(requestBody)) {return new StatusCodeResult(204);} // 204, ASA connectivity check
    
                dynamic data = JsonConvert.DeserializeObject(requestBody);
    
                // Reject if too large, as per the doc
                if (data.ToString().Length > 262144) {return new StatusCodeResult(413);} //HttpStatusCode.RequestEntityTooLarge
    
                string RedisConnectionString = Environment.GetEnvironmentVariable("RedisConnectionString");
                int RedisDatabaseIndex = int.Parse(Environment.GetEnvironmentVariable("RedisDatabaseIndex"));
    
                using (var connection = ConnectionMultiplexer.Connect(RedisConnectionString))
                {
                    // Connection refers to a property that returns a ConnectionMultiplexer
                    IDatabase db = connection.GetDatabase(RedisDatabaseIndex);
    
                    // Parse items and send to binding
                    for (var i = 0; i < data.Count; i++)
                    {
                        string key = data[i].Time + " - " + data[i].CallingNum1;
    
                        db.StringSet(key, data[i].ToString());
                        log.LogInformation($"Object put in database. Key is {key} and value is {data[i].ToString()}");
    
                        // Simple get of data types from the cache
                        string value = db.StringGet(key);
                        log.LogInformation($"Database got: {key} => {value}");
    
                    }
                }
                return new OkResult(); // 200
            }
        }
    }
    

    Gdy usługa Stream Analytics odbiera wyjątek "Jednostka żądania HTTP zbyt duża" od funkcji, zmniejsza rozmiar partii wysyłanych do funkcji. Poniższy kod gwarantuje, że usługa Stream Analytics nie wysyła przesłanych partii. Upewnij się, że wartości rozmiaru i maksymalnej liczby partii używane w funkcji są zgodne z wartościami podanymi w portalu usługi Stream Analytics.

  6. Funkcję można teraz opublikować na platformie Azure.

  7. Otwórz funkcję w witrynie Azure Portal i ustaw ustawienia aplikacji dla RedisConnectionString RedisDatabaseIndexi .

Aktualizacja zadania usługi Stream Analytics za pomocą funkcji jako wyjścia

  1. Otwórz zadanie usługi Stream Analytics w witrynie Azure Portal.

  2. Przejdź do funkcji, a następnie wybierz pozycje Omówienie>Wyjścia>Dodaj. Aby dodać nowe wyjście, wybierz pozycję Azure Function jako opcję ujścia. Adapter wyjściowy usługi Functions ma następujące właściwości:

    Nazwa właściwości Opis
    Alias danych wyjściowych Przyjazna nazwa używana w zapytaniu zadania do przywołania wyjścia.
    Opcja importu Można użyć funkcji z bieżącej subskrypcji lub, jeśli funkcja znajduje się w innej subskrypcji, podać ustawienia ręcznie.
    Aplikacja funkcji Nazwa aplikacji usługi Functions.
    Function Nazwa funkcji w aplikacji usługi Functions (nazwa funkcji run.csx).
    Maksymalny rozmiar partii Ustawia maksymalny rozmiar dla każdej partii danych wyjściowych, która jest wysyłana do funkcji w bajtach. Domyślnie ta wartość jest równa 262 144 B (256 KB).
    Maksymalna liczba partii Umożliwia określenie maksymalnej liczby zdarzeń w każdej z partii wysyłanych do funkcji. Wartość domyślna to 100. Ta właściwość jest opcjonalna.
    Klucz Pozwala na użycie funkcji z innej subskrypcji. Podaj wartość klucza, aby uzyskać dostęp do funkcji. Ta właściwość jest opcjonalna.
  3. Podaj nazwę aliasu danych wyjściowych. W tym samouczku nosi nazwę saop1, ale możesz użyć dowolnej wybranej nazwy. Podaj inne szczegóły.

  4. Otwórz zadanie usługi Stream Analytics i zaktualizuj zapytanie w następujący sposób.

    Ważne

    Poniższy przykładowy skrypt zakłada, że użyto elementu CallStream jako nazwy danych wejściowych i saop1 jako nazwy wyjściowej. Jeśli użyto różnych nazw, nie zapomnij zaktualizować zapytania.

     SELECT
             System.Timestamp as Time, CS1.CallingIMSI, CS1.CallingNum as CallingNum1,
             CS2.CallingNum as CallingNum2, CS1.SwitchNum as Switch1, CS2.SwitchNum as Switch2
         INTO saop1
         FROM CallStream CS1 TIMESTAMP BY CallRecTime
            JOIN CallStream CS2 TIMESTAMP BY CallRecTime
             ON CS1.CallingIMSI = CS2.CallingIMSI AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5
         WHERE CS1.SwitchNum != CS2.SwitchNum
    
  5. Uruchom aplikację telcodatagen.exe, uruchamiając następujące polecenie w wierszu polecenia. Polecenie używa formatu telcodatagen.exe [#NumCDRsPerHour] [SIM Card Fraud Probability] [#DurationHours].

    telcodatagen.exe 1000 0.2 2
    
  6. Uruchom zadanie usługi Stream Analytics.

  7. Na stronie Monitorowanie funkcji platformy Azure zobaczysz, że funkcja jest wywoływana.

    Zrzut ekranu przedstawiający stronę Monitorowanie usługi Azure Functions z wywołaniami funkcji.

  8. Na stronie Pamięci podręcznej usługi Azure Cache for Redis wybierz pozycję Metryki w menu po lewej stronie, dodaj metrykę Zapisu w pamięci podręcznej i ustaw czas trwania na ostatnią godzinę. Zostanie wyświetlony wykres podobny do poniższego.

    Zrzut ekranu przedstawiający stronę Metryki dla usługi Azure Cache for Redis.

Sprawdzanie pamięci podręcznej Azure Cache for Redis pod kątem wyników

Pobieranie klucza z dzienników usługi Azure Functions

Najpierw pobierz klucz dla rekordu wstawionego do usługi Azure Cache for Redis. W kodzie klucz jest obliczany w funkcji platformy Azure, jak pokazano w poniższym fragmencie kodu:

string key = data[i].Time + " - " + data[i].CallingNum1;

db.StringSet(key, data[i].ToString());
log.LogInformation($"Object put in database. Key is {key} and value is {data[i].ToString()}");
  1. Przejdź do witryny Azure Portal i znajdź aplikację usługi Azure Functions.

  2. Wybierz pozycję Funkcje w menu po lewej stronie.

  3. Wybierz pozycję HTTPTrigger1 z listy funkcji.

  4. Wybierz pozycję Monitor w menu po lewej stronie.

  5. Przejdź do karty Dzienniki .

  6. Zanotuj klucz z komunikatu informacyjnego, jak pokazano na poniższym zrzucie ekranu. Ten klucz służy do znajdowania wartości w usłudze Azure Cache for Redis.

    Zrzut ekranu przedstawiający stronę Monitorowanie dzienników dla funkcji platformy Azure.

Użyj klucza, aby znaleźć rekord w usłudze Azure Cache for Redis

  1. Przejdź do witryny Azure Portal i znajdź pamięć podręczną Azure Cache for Redis. Wybierz pozycję Konsola.

  2. Użyj poleceń pamięci podręcznej Azure Cache for Redis, aby sprawdzić, czy dane znajdują się w usłudze Azure Cache for Redis. (Polecenie przyjmuje format Get {key}). Użyj klucza skopiowanego z dzienników monitora dla funkcji platformy Azure (w poprzedniej sekcji).

    Pobierz polecenie "KEY-FROM-THE-PREVIOUS-SECTION"

    To polecenie powinno wyświetlić wartość dla określonego klucza:

    Zrzut ekranu przedstawiający konsolę usługi Redis Cache z danymi wyjściowymi polecenia Get.

Obsługa błędów oraz wykonywanie ponownych prób

Jeśli wystąpi błąd podczas wysyłania zdarzeń do usługi Azure Functions, usługa Stream Analytics ponawia próbę większości operacji. Wszystkie wyjątki http są ponawiane do momentu powodzenia z wyjątkiem błędu HTTP 413 (jednostka jest zbyt duża). Błąd zbyt dużej jednostki jest traktowany jako błąd danych, który podlega zasadom ponawiania lub porzucania.

Uwaga

Limit czasu żądań HTTP z usługi Stream Analytics do usługi Azure Functions wynosi 100 sekund. Jeśli przetwarzanie partii przez aplikację usługi Azure Functions trwa ponad 100 sekund, usługa Stream Analytics błędnie i ponowi próbę dla partii.

Ponowienie próby przekroczenia limitu czasu może spowodować zduplikowanie zdarzeń zapisanych w ujściu danych wyjściowych. Gdy usługa Stream Analytics ponawia próbę dla partii, która zakończyła się niepowodzeniem, ponawia próbę dla wszystkich zdarzeń w partii. Rozważmy na przykład partię 20 zdarzeń wysyłanych do usługi Azure Functions z usługi Stream Analytics. Załóżmy, że usługa Azure Functions przetwarza pierwsze 100 zdarzeń w tej partii przez 10 sekund. Po 100 sekundach usługa Stream Analytics zawiesza żądanie, ponieważ nie otrzymał pozytywnej odpowiedzi z usługi Azure Functions, a kolejne żądanie jest wysyłane dla tej samej partii. Pierwsze 10 zdarzeń w partii jest przetwarzanych ponownie przez usługę Azure Functions, co powoduje duplikat.

Znane problemy

Przy próbie resetowania wartości Maksymalny rozmiar partii/Maksymalna liczba partii na wartość pustą (domyślną) w witrynie Azure Portal wartość zostanie zmieniona z powrotem na wartość podaną wcześniej przy zapisywaniu. W takim przypadku ręcznie podaj wartości domyślne dla tych pól.

Korzystanie z routingu HTTP w usłudze Azure Functions nie jest obecnie obsługiwane przez usługę Stream Analytics.

Obsługa nawiązywania połączenia z usługą Azure Functions hostowaną w sieci wirtualnej nie jest włączona.

Czyszczenie zasobów

Gdy grupa zasobów, zadanie przesyłania strumieniowego i wszystkie pokrewne zasoby nie będą już potrzebne, usuń je. Usunięcie zadania pozwala uniknąć opłat za jednostki przesyłania strumieniowego zużywane przez zadanie. Jeśli planujesz użyć zadania w przyszłości, możesz je zatrzymać i uruchomić ponownie później, gdy będzie potrzebne. Jeśli nie zamierzasz nadal korzystać z tego zadania, usuń wszystkie zasoby utworzone w tym przewodniku Szybki start, wykonując następujące czynności:

  1. W menu znajdującym się po lewej stronie w witrynie Azure Portal wybierz pozycję Grupy zasobów, a następnie wybierz nazwę utworzonego zasobu.
  2. Na stronie grupy zasobów wybierz pozycję Usuń, wpisz w polu tekstowym nazwę zasobu do usunięcia, a następnie wybierz pozycję Usuń.

Następne kroki

W tym samouczku utworzono proste zadanie usługi Stream Analytics, które uruchamia funkcję platformy Azure. Aby dowiedzieć się więcej na temat zadań usługi Stream Analytics, przejdź do następnego samouczka: