Oktatóanyag: Azure Functions futtatása Azure Stream Analytics feladatokró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.
  • A több-bérlős fürtökben futó Stream Analytics feladatok esetében nem támogatott az Azure Functions csatlakoztatása egy virtuális hálózaton (VNet) belül.

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, hozzon létre egy ingyenes fiókot a megkezdés előtt.

Előfeltételek

Mielőtt hozzákezd, végezze el 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 a Az összes szolgáltatás lehetőséget a bal oldali menüben, válassza a Dolgok Internete lehetőséget, vigye az egérkurzort 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 Létrehozás lehetőséget az oldal alján. 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érlapjá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.

    Képernyőkép a Megosztott hozzáférési szabályzatok lapról.

  3. Ezután válassza a Másolás gombot a Kapcsolati 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 előző szakaszban létrehozott eseményközpont nevére.
    • Állítsa a Microsoft.ServiceBus.ConnectionString kulcs értékét a névtérhez tartozó kapcsolati stringre. Ha egy eseményközpont kapcsolati sztringjét használja, nem a névteret, távolítsa el az EntityPath értékét a végén (;EntityPath=myeventhub). 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 Nemzetközi mobil előfizetői identitás (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 a bal oldali menü Minden szolgáltatás elemét, keressen Stream Analytics-feladatokat, mutasson az egérrel a Stream Analytics-feladatok csempéjére, majd válassza a + gombot, vagy válassza a Létrehozás lehetőséget az előugró ablakban.

    Képernyőkép a Stream Analytics azure portalon való megkereséséről.

  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 a Név mezőbe 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. Az üzemeltetési környezet< jellemzőként válassza a felhő, 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-et. 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, hogy létrehozza a Stream Analytics-feladatot.

  5. A munka ü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 aliasként adja meg a CallStream. A bemeneti alias egy felhasználóbarát név a bemenet azonosításához. A bemeneti alias csak alfanumerikus karaktereket és kötőjeleket tartalmazhat, és 3–63 karakter hosszú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 lehet ugyanabban az előfizetésben, mint a Stream Analytics-feladat, vagy egy másik előfizetésben 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 Kapcsolati sztring lehetőséget. Ezzel a beállítással könnyebben tesztelheti az oktatóanyagot.

    7. Az Event Hub-szabályzat neve esetén válassza a Meglévő használata lehetőséget, majd válassza ki az alapértelmezett házirendet: RootManageSharedAccessKey.

    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 az Azure Cache for Redis-példány létrehozása című szakaszban ismertetett 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 karakterláncot.

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

Hozz létre egy függvényt az Azure Functionsben, amely adatokat ír 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őket használja:

    • 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. Használja a következő információkat: 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 RedisConnectionString és RedisDatabaseIndex elemeket a Values szakaszban található local.settings.json-ban, kitöltve a célkiszolgáló kapcsolati sztringjét.

    {
        "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 a névteret, az osztálynevet és a függvénynevet a sajátjával:

    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. Publish a(z) függvényt Azure-ba.

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

Frissítsd a Stream Analytics feladatot úgy, hogy a függvény legyen a kimenet

  1. Nyissa meg a Stream Analytics-feladatot a Azure portálon.

  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 Felhasználóbarát név, amelyet a feladat lekérdezésében használsz a kimenet hivatkozásához.
    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 Lehetővé teszi egy másik előfizetésből származó függvény használatát. A funkció 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 CallStream-et, a kimeneti névhez pedig a saop1-et használta. Ha különböző neveket használt, frissítse 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üben a Metrikák elemet, adja hozzá a Cache Write metrikát, és állítsa az időtartamot az elmúlt ó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ófigyelő oldalá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-SECTION" lekérése

    Ez a parancs a megadott kulcs értékét nyomtatja ki:

    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. Újrapróbálja az összes HTTP-kivételt a sikerességig, kivéve a HTTP 413 hibát (az entitás túl nagy). A túl nagy méretű entitás miatti hiba adatként van kezelve, amely az újrapróbálkozási vagy elvetési szabályzat hatálya alá esik.

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 a Azure Functions alkalmazás több mint 100 másodpercet vesz igénybe egy köteg feldolgozásához, a Stream Analytics hibát ad vissza, és újrapróbálkozza a köteget.

Az időtúllépések miatti újrapróbálkozás ismétlődő eseményeket eredményezhet, amelyek a kimeneti fogadóba íródnak. A Stream Analytics egy sikertelen köteg újrapróbálásakor a köteg összes eseményét újrapróbálja. Vegyünk például egy 20 eseményből álló köteget, amelyet a Stream Analytics küld Azure Functions. 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 Azure Functions, és egy másik kérést küld ugyanarra a kötegre. Azure Functions újra feldolgozza a köteg első 10 eseményét, ami duplikációt okoz.

Ismert problémák

A Azure portálon, amikor a Maximális kötegméret vagy a Maximális kötegszám értéket próbálja üresre állítani (alapértelmezés szerint), az érték mentéskor visszaáll 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 az HTTP-útválasztás használatát az Azure Functions alatt.

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

Az erőforrások tisztítása

Ha már nincs szüksége az erőforrásokra, törölje az erőforráscsoportot, a streamelési feladatot és az összes kapcsolódó erőforrást. A feladat törlése leállítja a feladat által felhasznált streamelési egységek számlázását. Ha a jövőben szeretné használni a feladatot, akkor szükség esetén leállíthatja, majd később újraindíthatja. 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: