Share via


Oktatóanyag: Az Azure Functions futtatása Az Azure Stream Analytics-feladatokból

Ebben az oktatóanyagban létrehoz egy Azure Stream Analytics-feladatot, amely beolvassa az eseményeket az Azure Event Hubsból, lefuttat egy lekérdezést az eseményadatokon, majd meghív egy Azure-függvényt, amely egy Azure Cache for Redis-példányba ír.

Képernyőkép az Azure-szolgáltatások közötti kapcsolatról a megoldásban.

Feljegyzés

  • Az Azure Functionst az Azure Stream Analyticsből futtathatja úgy, hogy konfigurálja a Functionst fogadóként (kimenetként) a Stream Analytics-feladathoz. A Functions egy eseményvezérelt, számítási igények szerint működtethető szolgáltatás, amellyel az Azure-ban vagy külső szolgáltatásokban bekövetkező események által aktivált kódok implementálhatók. Az eseményindítókra való reagálás képessége a Stream Analytics-feladatok természetes kimenetévé teszi a Functionst.
  • A Stream Analytics HTTP-eseményindítókkal hívja meg a Functionst. A Functions kimeneti adaptere segítségével a felhasználók a Stream Analyticshez csatlakoztathatják a Functionst, és így az események a Stream Analytics-lekérdezések alapján aktiválhatók.
  • Csatlakozás több-bérlős fürtben futó Stream Analytics-feladatból a virtuális hálózaton (VNet) belül az Azure Functions szolgáltatásba való be- és visszaengedése nem támogatott.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Azure Event Hubs-példány létrehozása
  • Azure Cache for Redis-példány létrehozása
  • Azure-függvény létrehozása
  • Stream Analytics-feladat létrehozása
  • Eseményközpont konfigurálása bemenetként és függvény kimenetként
  • Stream Analytics-feladat futtatása
  • Eredmények keresése az Azure Cache for Redisben

Ha nem rendelkezik Azure-előfizetéssel, mindössze néhány perc alatt létrehozhat egy ingyenes fiókot a virtuális gép létrehozásának megkezdése előtt.

Előfeltételek

Mielőtt hozzákezd, győződjön meg arról, hogy elvégezte a következő lépéseket:

  • Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.
  • Töltse le a telefonhívás-eseménygeneráló alkalmazást, TelcoGenerator.zip a Microsoft letöltőközpontból, vagy kérje le a forráskódot a GitHubról.

Bejelentkezés az Azure-ba

Jelentkezzen be az Azure Portalra.

Eseményközpont létrehozása

Néhány mintaadatot el kell küldenie egy eseményközpontnak, mielőtt a Stream Analytics elemezni tudja a csalárd hívások adatfolyamát. Ebben az oktatóanyagban adatokat küld az Azure-ba az Azure Event Hubs használatával.

Az alábbi lépésekkel hozzon létre egy eseményközpontot, és küldjön hívásadatokat az adott eseményközpontnak:

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza az Összes szolgáltatás lehetőséget a bal oldali menüben, válassza a Dolgok internete lehetőséget, egérrel az Event Hubs fölé, majd válassza a + (Hozzáadás) gombot.

    Képernyőkép az Event Hubs létrehozási oldalról.

  3. A Névtér létrehozása lapon kövesse az alábbi lépéseket:

    1. Válassza ki azt az Azure-előfizetést, amelyben létre szeretné hozni az eseményközpontot.

    2. Erőforráscsoport esetén válassza az Új létrehozása lehetőséget, és adja meg az erőforráscsoport nevét. Az Event Hubs-névtér ebben az erőforráscsoportban jön létre.

    3. Névtérnévként adja meg az Event Hubs névterének egyedi nevét.

    4. A Hely mezőben válassza ki azt a régiót, amelyben létre szeretné hozni a névteret.

    5. Tarifacsomag esetén válassza a Standard lehetőséget.

    6. Válassza a Véleményezés + létrehozás lehetőséget a lap alján.

      Képernyőkép a Névtér létrehozása lapról.

    7. A névtérlétrehozási varázsló Véleményezés és létrehozás lapján az összes beállítás áttekintése után válassza a Lap alján található Létrehozás lehetőséget.

  4. A névtér sikeres üzembe helyezése után válassza az Erőforrás megnyitása lehetőséget az Event Hubs Névtér lapjára való navigáláshoz.

  5. Az Event Hubs Névtér lapján válassza a +Event Hub lehetőséget a parancssávon.

    Képernyőkép az Event Hubs Névtér lapján található Eseményközpont hozzáadása gombról.

  6. Az Eseményközpont létrehozása lapon adja meg az eseményközpont nevét. Állítsa a partíciók számát 2-re. Használja az alapértelmezett beállításokat a többi beállításban, és válassza a Véleményezés + létrehozás lehetőséget.

    Képernyőkép az Eseményközpont létrehozása lapról.

  7. A Véleményezés + létrehozás lapon válassza a Lap alján található Létrehozás lehetőséget . Várjon, amíg az üzembe helyezés sikeresen befejeződik.

Az eseményközponthoz való hozzáférés engedélyezése és kapcsolati sztring beszerzése

Ahhoz, hogy egy alkalmazás adatokat küldjön az Azure Event Hubsnak, az eseményközpontnak rendelkeznie kell egy olyan szabályzattal, amely engedélyezi a hozzáférést. A hozzáférési szabályzat egy kapcsolati sztringet hoz létre, amelyben megtalálhatók az engedélyezési információk.

  1. Az Event Hubs Névtér lapján válassza a megosztott hozzáférési szabályzatokat a bal oldali menüben.

  2. Válassza a RootManageSharedAccessKey elemet a szabályzatok listájából.

  3. Ezután válassza a másolás gombot a Csatlakozás ion sztring – elsődleges kulcs mellett.

  4. Illessze be a kapcsolati sztringet egy szövegszerkesztőbe. A következő szakaszban szükség lesz erre a kapcsolati sztringre.

    A kapcsolati sztring a következőképpen néz ki:

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

    Figyelje meg, hogy a kapcsolati sztring több kulcs-érték párot tartalmaz pontosvesszővel elválasztva: Endpoint, SharedAccessKeyName és SharedAccessKey.

Az eseménylétrehozó alkalmazás elindítása

A TelcoGenerator alkalmazást úgy kell beállítania az indítása előtt, hogy a korábban beállított Azure Event Hubs-eseményközpontnak küldjön adatokat.

  1. Bontsa ki a TelcoGenerator.zip fájl tartalmát.

  2. Nyissa meg a TelcoGenerator\TelcoGenerator\telcodatagen.exe.config fájlt egy tetszőleges szövegszerkesztőben: Több .config fájl is van, ezért győződjön meg arról, hogy a megfelelő fájlt nyitja meg.

  3. Frissítse a konfigurációs fájl <appSettings> elemét az alábbi részletekkel:

    • Állítsa az EventHubName kulcs értékét az EntityPath értékére a kapcsolati sztring végén.
    • A Microsoft.ServiceBus.Csatlakozás értékének beállításaionString-kulcs a névtér kapcsolati sztring. Ha kapcsolati sztring használ egy eseményközponthoz, nem névtérhez, távolítsa el EntityPath az értéket (;EntityPath=myeventhub) a végén. Ne felejtse el eltávolítani az EntityPath értéket megelőző pontosvesszőt.
  4. Mentse a fájlt.

  5. Ezután nyisson meg egy parancsablakot, és lépjen arra a mappára, ahová kicsomagolta a TelcoGenerator alkalmazást. Ezután írja be a következő parancsot:

    .\telcodatagen.exe 1000 0.2 2
    

    A paranccsal a következő paraméterek használhatók:

    • Óránkénti hívásadatrekordok száma.
    • Csalások valószínűségének százalékos aránya, amely azt adja meg, hogy az alkalmazás milyen gyakran szimuláljon csaló hívásokat. A 0,2 érték azt jelenti, hogy a hívásrekordok körülbelül 20%-a csalónak tűnik.
    • Időtartam órában, amely azt adja meg, hogy hány óráig fusson az alkalmazás. Az alkalmazást bármikor le is állíthatja úgy, hogy a parancssorban befejezi a folyamatot (Ctrl+C).

    Néhány másodperc elteltével az alkalmazás elkezdi kijelezni a hívásrekordokat a képernyőn, miközben az eseményközpontba küldi őket. A telefonhívási adatok a következő mezőket tartalmazzák:

    Rekord Definíció
    CallrecTime A hívási kezdési idejét jelölő időbélyegző.
    SwitchNum A hívás csatlakozásához használt telefonkapcsoló. Ebben a példában a kapcsolók olyan sztringek, amelyek a származási országot/régiót jelölik (USA, Kína, Egyesült Királyság, Németország vagy Ausztrália).
    CallingNum A hívó telefonszáma.
    CallingIMSI Az International Mobile Subscriber Identity (IMSI). Ez a hívó egyedi azonosítója.
    CalledNum A hívott fél telefonszáma.
    CalledIMSI International Mobile Subscriber Identity (IMSI). Ez a hívott fél egyedi azonosítója.

Stream Analytics-feladat létrehozása

Most, hogy már rendelkezik a hívási események streamjével, létrehozhat egy olyan Stream Analytics-feladatot, amely beolvassa az adatokat az eseményközpontból.

  1. Stream Analytics-feladat létrehozásához lépjen az Azure Portalra.
  2. Válassza az Erőforrás létrehozása és a Stream Analytics-feladat keresése lehetőséget. Válassza a Stream Analytics-feladat csempét, és válassza a Létrehozás lehetőséget.
  3. Az Új Stream Analytics-feladatlapon kövesse az alábbi lépéseket:
    1. Előfizetés esetén válassza ki az Event Hubs-névteret tartalmazó előfizetést.

    2. Erőforráscsoport esetén válassza ki a korábban létrehozott erőforráscsoportot.

    3. A Példány részletei szakaszban adja meg a Stream Analytics-feladat egyedi nevét.

    4. Régió esetén válassza ki azt a régiót, amelyben létre szeretné hozni a Stream Analytics-feladatot. Javasoljuk, hogy a legjobb teljesítmény érdekében helyezze a feladatot és az eseményközpontot ugyanabba a régióba, hogy ne kelljen fizetnie az adatok régiók közötti átviteléért.

    5. Üzemeltetési környezet< esetén válassza a Felhő lehetőséget, ha még nincs kiválasztva. A Stream Analytics-feladatokat a felhőbe vagy peremhálózatra (Edge) telepítheti. A Cloud lehetővé teszi az Azure Cloudban való üzembe helyezést, az Edge pedig egy IoT Edge-eszközön való üzembe helyezést.

    6. Streamelési egységek esetén válassza az 1 lehetőséget. A Streamelési egységek azoknak a számítási erőforrásoknak felelnek meg, amelyek a feladat futtatásához szükségesek. Alapértelmezés szerint ez az érték 1. További információ a streamelési egységek skálázásáról: A streamelési egységek ismertetése és módosítása.

    7. Válassza a Véleményezés + létrehozás lehetőséget a lap alján.

      Képernyőkép az Azure Stream Analytics-feladat létrehozása lapról.

  4. A Véleményezés + létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget a Stream Analytics-feladat létrehozásához.
  5. A feladat üzembe helyezése után válassza az Erőforrás megnyitása lehetőséget a Stream Analytics-feladat lapjára való navigáláshoz.

Feladatbemenet konfigurálása

A következő lépés egy bemeneti forrás megadása, amelyből a feladat be tudja olvasni az adatokat az előző szakaszban létrehozott eseményközpontot használva.

  1. A Stream Analytics feladatlapjának bal oldali Feladattopológia szakaszában válassza a Bemenetek lehetőséget.

  2. A Bemenetek lapon válassza a + Bemenet hozzáadása és az Eseményközpont lehetőséget.

    Képernyőkép egy Stream Analytics-feladat beviteli oldalával.

  3. Az Eseményközpont lapon kövesse az alábbi lépéseket:

    1. Bemeneti alias esetén adja meg a CallStreamet. A bemeneti alias egy felhasználóbarát név a bemenet azonosításához. A bemeneti alias csak alfanumerikus karaktereket, kötőjeleket és aláhúzásjeleket tartalmazhat, és 3–63 karakter hosszúságúnak kell lennie.

    2. Előfizetés esetén válassza ki azt az Azure-előfizetést, ahol létrehozta az eseményközpontot. Az eseményközpont ugyanabban az előfizetésben, mint a Stream Analytics-feladat, vagy egy másikban is.

    3. Event Hubs-névtér esetén válassza ki az előző szakaszban létrehozott Event Hubs-névteret. Az aktuális előfizetésben elérhető összes névtér megjelenik a legördülő listában.

    4. Az eseményközpont neveként válassza ki az előző szakaszban létrehozott eseményközpontot. A kiválasztott névtérben elérhető összes eseményközpont megjelenik a legördülő listában.

    5. Az Event Hub fogyasztói csoportjában tartsa bejelölve az Új létrehozása lehetőséget, hogy létrejön egy új fogyasztói csoport az eseményközpontban. Javasoljuk, hogy minden Stream Analytics-feladathoz külön fogyasztói csoportot használjon. Ha nincs megadva fogyasztói csoport, a Stream Analytics-feladat a $Default fogyasztói csoportot használja. Ha egy feladat önillesztéseket tartalmaz, vagy több bemenettel rendelkezik, előfordulhat, hogy később több olvasó is felolvassa a bemeneteket. Ez a helyzet egyetlen fogyasztói csoport olvasóinak számát érinti.

    6. Hitelesítési mód esetén válassza a Csatlakozás ion sztringet. Ezzel a beállítással könnyebben tesztelheti az oktatóanyagot.

    7. Az Event Hub-szabályzat nevének megadásához válassza a Meglévő használata lehetőséget, majd válassza ki a korábban létrehozott szabályzatot.

    8. Válassza a Lap alján található Mentés lehetőséget.

      Képernyőkép egy bemenet Event Hubs-konfigurációs oldalával.

Azure Cache for Redis-példány létrehozása

  1. Hozzon létre egy gyorsítótárat az Azure Cache for Redisben a gyorsítótár létrehozása című szakaszban leírt lépésekkel.

  2. Miután létrehozta a gyorsítótárat, a Beállítások területen válassza a Hozzáférési kulcsok elemet. Jegyezze fel az Elsődleges kapcsolati sztring értékét.

    Képernyőkép az Access-kulcs menüelem kiválasztásáról.

Olyan függvény létrehozása az Azure Functionsben, amely adatokat tud írni az Azure Cache for Redisbe

  1. Tekintse meg a Functions dokumentációjának Függvényalkalmazás létrehozása című szakaszát. Ez a minta a következőre épült:

    • Az Azure Functions 4-es futtatókörnyezete
    • .NET 6.0
    • StackExchange.Redis 2.2.8
  2. Az oktatóanyag követésével hozzon létre egy alapértelmezett HttpTrigger-függvényalkalmazást a Visual Studio Code-ban. A rendszer a következő információkat használja: nyelv: C#, futtatókörnyezet: .NET 6 (a v4 függvény alatt), sablon: HTTP trigger.

  3. Telepítse a Redis ügyfélkódtárat a következő parancs futtatásával a projektmappában található terminálon:

    dotnet add package StackExchange.Redis --version 2.2.88
    
  4. Adja hozzá a RedisConnectionStringRedisDatabaseIndexValues célkiszolgáló kapcsolati sztring kitöltendő szakaszában local.settings.jsonszereplő elemeket és elemeket:

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

    A Redis-adatbázisindex a példány adatbázisát azonosító 0 és 15 közötti szám.

  5. Cserélje le a teljes függvényt (.cs fájlt a projektben) a következő kódrészletre. Frissítse saját névterét, osztálynevét és függvénynevét:

    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
            }
        }
    }
    

    Amikor a Stream Analytics a "HTTP Request Entity Too Large" kivételt kapja a függvénytől, csökkenti a függvényeknek küldött kötegek méretét. Az alábbi kód biztosítja, hogy a Stream Analytics ne küldjön túlméretezett kötegeket. Ellenőrizze, hogy a függvényben használt maximális kötegszám- és kötegméretértékek egyeznek a Stream Analytics-portálon megadott értékekkel.

  6. A függvény mostantól közzétehető az Azure-ban.

  7. Nyissa meg a függvényt az Azure Portalon, és adja meg az RedisConnectionString alkalmazás beállításait.RedisDatabaseIndex

A Stream Analytics-feladat frissítése a kimenetként megadott függvénnyel

  1. Nyissa meg a Stream Analytics-feladatot az Azure Portalon.

  2. Keresse meg a függvényt, és válassza az Áttekintés>Kimenetek>Hozzáadás elemet. Új kimenet hozzáadásához válassza az Azure-függvény lehetőséget a fogadó beállításánál. A Functions kimeneti adapter a következő tulajdonságokkal rendelkezik:

    Tulajdonság neve Leírás
    Kimeneti alias A feladat lekérdezésében a kimenetre való hivatkozáshoz használt rövid név.
    Importálási beállítás A függvényt használhatja az aktuális előfizetésből, vagy megadhatja manuálisan a beállításokat, ha a függvény egy másik előfizetésben található.
    Függvényalkalmazás A Functions-alkalmazás neve.
    Függvény A függvény neve a Functions-alkalmazásban (a run.csx függvény neve).
    Maximális kötegméret Beállítja az egyes kimeneti kötegek maximális méretét, amelyet a függvény bájtokban küld el. Alapértelmezés szerint ez az érték 262 144 bájtra (256 KB) van állítva.
    Maximális kötegszám A függvénybe küldött egyes kötegekben lévő események maximális számának megadására szolgál. Az alapértelmezett érték 100. Ez a tulajdonság opcionális.
    Kulcs Más előfizetésből származó függvény használatát teszi lehetővé. A függvény eléréséhez adja meg a kulcs értékét. Ez a tulajdonság opcionális.
  3. Adja meg a kimeneti alias nevét. Ebben az oktatóanyagban saop1-nek hívják, de tetszőleges nevet használhat. Adja meg az egyéb adatokat.

  4. Nyissa meg a Stream Analytics-feladatot, és frissítse a lekérdezést az alábbiakra.

    Fontos

    Az alábbi példaszkript feltételezi, hogy a bemeneti névhez a CallStreamet, a kimeneti név saop1-et használta. Ha különböző neveket használt, ne felejtse el frissíteni a lekérdezést.

     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. Indítsa el a telcodatagen.exe alkalmazást a következő parancs parancssori futtatásával. A parancs formátumot telcodatagen.exe [#NumCDRsPerHour] [SIM Card Fraud Probability] [#DurationHours]használ.

    telcodatagen.exe 1000 0.2 2
    
  6. Indítsa el a Stream Analytics-feladatot.

  7. Az Azure-függvény Monitorozás lapján láthatja, hogy a függvény meghívása történik.

    Képernyőkép az Azure Functions monitorozási lapjáról függvényhívásokkal.

  8. Az Azure Cache for Redis oldalán válassza a bal oldali menü Metrikái elemét, adja hozzá a Cache Write metrikát, és állítsa az időtartamot az utolsó órára. A diagram az alábbi ábrához hasonlóan jelenik meg.

    Képernyőkép az Azure Cache for Redis Metrikák lapjáról.

Eredmények keresése az Azure Cache for Redisben

A kulcs lekérése az Azure Functions naplóiból

Először szerezze be az Azure Cache for Redisbe beszúrt rekord kulcsát. A kódban a kulcs kiszámítása az Azure-függvényben történik a következő kódrészletben látható módon:

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. Keresse meg az Azure Portalt, és keresse meg az Azure Functions-alkalmazást.

  2. Válassza a Bal oldali menü Függvények elemét.

  3. Válassza a HTTPTrigger1 elemet a függvények listájából.

  4. Válassza a Figyelés lehetőséget a bal oldali menüben.

  5. Váltson a Naplók lapra.

  6. Jegyezze fel a tájékoztató üzenet egyik kulcsát az alábbi képernyőképen látható módon. Ezzel a kulccsal keresheti meg az értéket az Azure Cache for Redisben.

    Képernyőkép az Azure-függvény Naplók figyelése lapjáról.

A rekord megkeresése a kulccsal az Azure Cache for Redisben

  1. Keresse meg az Azure Portalt, és keresse meg az Azure Cache for Redist. Válassza a Konzol lehetőséget.

  2. Az Azure Cache for Redis parancsaival ellenőrizheti, hogy az adatok az Azure Cache for Redisben vannak-e. (A parancs a Get {key} formátumot használja.) Használja az Azure-függvény monitorozási naplóiból kimásolt kulcsot (az előző szakaszban).

    "KEY-FROM-THE-PREVIOUS-Standard kiadás CTION" lekérése

    Ennek a parancsnak a megadott kulcshoz tartozó értéket kell kiírnia:

    Képernyőkép a Redis Cache-konzolról, amelyen a Get parancs kimenete látható.

Hibakezelés és újrapróbálkozások

Ha hiba történik az események Azure Functionsbe való küldése közben, a Stream Analytics újrapróbálkozza a legtöbb műveletet. Az összes http-kivétel újrapróbálkozott a sikerességig, kivéve a 413-at (az entitás túl nagy) 413-at. A rendszer egy túl nagy entitáshibát adathibaként kezel, amely az újrapróbálkozási vagy elvetési szabályzat hatálya alá tartozik.

Feljegyzés

A Stream Analyticsből az Azure Functionsbe irányuló HTTP-kérelmek időtúllépése 100 másodpercre van állítva. Ha az Azure Functions-alkalmazás több mint 100 másodpercet vesz igénybe egy köteg feldolgozásához, a Stream Analytics hibát jelez, és újra használatba veszi a köteget.

Az időtúllépések újrapróbálkozása ismétlődő eseményeket eredményezhet, amelyek a kimeneti fogadóba írnak. Amikor a Stream Analytics újrapróbálkozott egy sikertelen köteghez, újrapróbálkozza a köteg összes eseményét. Vegyük például azt a 20 eseményt tartalmazó köteget, amelyet a Stream Analytics küld az Azure Functionsnek. Tegyük fel, hogy az Azure Functions 100 másodpercet vesz igénybe a köteg első 10 eseményének feldolgozásához. 100 másodperc elteltével a Stream Analytics felfüggeszti a kérést, mivel nem kapott pozitív választ az Azure Functionstől, és ugyanahhoz a köteghez egy másik kérést küld. A köteg első 10 eseményét az Azure Functions újra feldolgozta, ami duplikálást okoz.

Ismert problémák

Amikor az Azure Portalon megpróbálja üres (alapértelmezett) értékre visszaállítani a Maximális kötegméret/Maximális kötegszám értékét, mentéskor az érték visszavált a korábban megadott értékre. Ebben az esetben manuálisan adja meg az alapértelmezett értékeket ezekben a mezőkben.

A Stream Analytics jelenleg nem támogatja a HTTP-útválasztás használatát az Azure Functionsben.

A virtuális hálózaton üzemeltetett Azure Functionshez való csatlakozás támogatása nincs engedélyezve.

Az erőforrások eltávolítása

Ha már nincs szükség rá, törölheti az erőforráscsoportot, a folyamatos átviteli feladatot és az összes kapcsolódó erőforrást. A feladat törlésével megakadályozhatja, hogy a feladat által felhasznált streamelési egységek kiszámlázásra kerüljenek. Ha a feladatot a jövőben is szeretné használni, leállíthatja, és később újraindíthatja amikor ismét szükség van rá. Ha nem folytatja a feladat használatát, törölje a rövid útmutatóban létrehozott összes erőforrást az alábbi lépések végrehajtásával:

  1. Az Azure Portal bal oldali menüjében válassza az Erőforráscsoportok menüpontot, majd válassza ki a létrehozott erőforrás nevét.
  2. Az erőforráscsoport lapján válassza a Törlés elemet, írja be a törölni kívánt erőforrás nevét a szövegmezőbe, majd válassza a Törlés lehetőséget.

Következő lépések

Ebben az oktatóanyagban létrehozott egy egyszerű Stream Analytics-feladatot, amely egy Azure-függvényt futtat. A Stream Analytics-feladatokról a következő oktatóanyagban talál további információt: