Strukturálatlan adatok tárolása az Azure Functions és az Azure Cosmos DB használatával

Az Azure Cosmos DB kiválóan alkalmas strukturálatlan és JSON-adatok tárolására. A Azure Functions kombinálva az Azure Cosmos DB gyors és egyszerűvé teszi az adatok tárolását sokkal kevesebb kóddal, mint amennyi az adatok relációs adatbázisban való tárolásához szükséges.

Megjegyzés

Az Azure Cosmos DB-eseményindító, illetve a bemeneti és a kimeneti kötések jelenleg csak az SQL API- és a Graph API-fiókokkal képesek együttműködni.

Az Azure Functions bemeneti és kimeneti kötései deklaratív módszert biztosítanak a külső szolgáltatások adataihoz a függvényből történő csatlakozásra. Ebben a cikkben megtudhatja, hogyan módosíthat egy meglévő függvényt egy kimeneti kötés hozzáadásához, amely strukturálatlan adatokat tárol egy Azure Cosmos DB-dokumentumban.

Előfeltételek

Az oktatóanyag elvégzéséhez:

A témakör kiindulópontjául Az első függvény létrehozása az Azure Portalon című cikkben létrehozott erőforrások szolgálnak. A függvényalkalmazás létrehozásához kérjük, hajtsa végre ezeket a lépéseket, ha még nem tette meg.

Azure Cosmos DB-fiók létrehozása

A kimeneti kötés létrehozásához rendelkeznie kell egy SQL API-t használó Azure Cosmos DB-fiókkal.

  1. A Azure Portal menüben vagy a Kezdőlapon válassza az Erőforrás létrehozása lehetőséget.

  2. Keresse meg az Azure Cosmos DB-t. Válassza azAzure Cosmos DBlétrehozása> lehetőséget.

  3. Az Azure Cosmos DB-fiók létrehozása lapon válassza a Létrehozás lehetőséget az Azure Cosmos DB for NoSQL szakaszban.

    Az Azure Cosmos DB számos API-t biztosít:

    • NoSQL, dokumentumadatokhoz
    • PostgreSQL
    • MongoDB, dokumentumadatokhoz
    • Apache Cassandra
    • Tábla
    • Apache Gremlin, gráfadatokhoz

    A NoSQL API-val kapcsolatos további információkért lásd: Üdvözöljük az Azure Cosmos DB-ben.

  4. Az Azure Cosmos DB-fiók létrehozása lapon adja meg az új Azure Cosmos DB-fiók alapbeállításait.

    Beállítás Érték Leírás
    Előfizetés Előfizetés neve Válassza ki az Azure Cosmos DB-fiókhoz használni kívánt Azure-előfizetést.
    Erőforráscsoport Erőforráscsoport neve Válasszon ki egy erőforráscsoportot, vagy válassza az Új létrehozása lehetőséget, majd adjon meg egy egyedi nevet az új erőforráscsoportnak.
    Fiók neve Egyedi név Adjon meg egy nevet az Azure Cosmos DB-fiók azonosításához. Mivel documents.azure.com hozzá van fűzve az URI létrehozásához megadott névhez, használjon egyedi nevet. A név csak kisbetűket, számokat és kötőjelet (-) tartalmazhat. 3–44 karakter hosszúságúnak kell lennie.
    Hely A felhasználókhoz legközelebb eső régió Válassza ki az Azure Cosmos DB-fiókot üzemeltetéséhez használni kívánt földrajzi helyet. Használja a felhasználókhoz legközelebbi helyet, hogy a lehető leggyorsabb hozzáférést biztosítsa számukra az adatokhoz.
    Kapacitásmód Kiosztott átviteli sebesség vagy kiszolgáló nélküli A Kiosztott átviteli sebesség lehetőséget választva hozzon létre egy fiókot kiépített átviteli módban. A Kiszolgáló nélküli lehetőséget választva hozzon létre egy fiókot kiszolgáló nélküli módban.
    Ingyenes Azure Cosmos DB-kedvezmény alkalmazása Alkalmazás vagy Nem alkalmazható Az Ingyenes Azure Cosmos DB-szinttel az első 1000 RU/s- és 25 GB tárterületet kapja ingyenesen egy fiókban. További információ az ingyenes szintről.
    Fiók teljes átviteli sebességének korlátozása Kijelölve vagy nem Korlátozza az ezen a fiókon kiosztható átviteli sebesség teljes mennyiségét. Ez a korlát megakadályozza a kiosztott átviteli sebességhez kapcsolódó váratlan díjakat. Ezt a korlátot a fiók létrehozása után frissítheti vagy eltávolíthatja.

    Azure-előfizetésenként legfeljebb egy ingyenes szintű Azure Cosmos DB-fiókkal rendelkezhet, és a fiók létrehozásakor be kell jelentkeznie. Ha nem látja az ingyenes szint kedvezményének alkalmazását, az előfizetés egy másik fiókja már engedélyezve van az ingyenes szinttel.

    Képernyőkép az Azure Cosmos DB-fiók létrehozása oldalról.

    Megjegyzés

    A következő beállítások nem érhetők el, ha a Kiszolgáló nélküli lehetőséget választja Kapacitás módként:

    • Az ingyenes szint árengedményének alkalmazása
    • Fiók teljes átviteli sebességének korlátozása
  5. A Globális terjesztés lapon konfigurálja az alábbi adatokat. A rövid útmutató alapértelmezett értékeit a következő módon hagyhatja meg:

    Beállítás Érték Leírás
    Georedundancia Letiltás Engedélyezze vagy tiltsa le a globális terjesztést a fiókjában a régió párosításával egy párrégióval. Később további régiókat is felvehet a fiókjába.
    Többrégiós írók Letiltás A többrégiós írási képesség lehetővé teszi, hogy kihasználja a kiosztott átviteli sebességet az adatbázisok és tárolók számára világszerte.
    Rendelkezésre állási zónák Letiltás Availability Zones segít az alkalmazás rendelkezésre állásának és rugalmasságának további javításában.

    Megjegyzés

    A következő beállítások nem érhetők el, ha a Kiszolgáló nélküli lehetőséget választja kapacitás módként az előző Alapismeretek lapon:

    • Georedundancia
    • Többrégiós írók
  6. További részleteket az alábbi lapon is konfigurálhat:

    • Hálózatkezelés. Virtuális hálózatról való hozzáférés konfigurálása.
    • Biztonsági mentési szabályzat. Konfigurálja az időszakos vagy folyamatos biztonsági mentési szabályzatot.
    • Titkosítás. Használjon szolgáltatás által felügyelt kulcsot vagy ügyfél által felügyelt kulcsot.
    • Címkék. A címkék név-érték párok, amelyek lehetővé teszik az erőforrások kategorizálását és az összevont számlázás megtekintését azáltal, hogy ugyanazt a címkét több erőforrásra és erőforráscsoportra alkalmazza.
  7. Válassza az Áttekintés + létrehozás lehetőséget.

  8. Tekintse át a fiókbeállításokat, majd válassza a Létrehozás lehetőséget. A fiók létrehozása néhány percet vesz igénybe. Várja meg, amíg a portállapon megjelenik az Üzembe helyezés befejeződött.

    Képernyőkép arról, hogy az üzembe helyezés befejeződött.

  9. Válassza az Erőforrás megnyitása lehetőséget az Azure Cosmos DB-fiók oldalának megtekintéséhez.

    Képernyőkép az Azure Cosmos DB-fiók oldalról.

Kimeneti kötés hozzáadása

  1. A Azure Portal keresse meg és válassza ki a korábban létrehozott függvényalkalmazást.

  2. Válassza a Függvények, majd a HttpTrigger függvényt.

    Válassza ki a Http-függvényt a Azure Portal.

  3. Válassza az Integráció és + Kimenet hozzáadása lehetőséget.

    Adjon hozzá egy Azure Cosmos DB kimeneti kötést.

  4. Használja a Kimenet létrehozása beállítást a táblázatban megadott módon:

    Konfigurálja az Azure Cosmos DB kimeneti kötését.

    Beállítás Ajánlott érték Leírás
    Kötés típusa Azure Cosmos DB Az Azure Cosmos DB-hez való kimeneti kötés létrehozásához kiválasztandó kötéstípus neve.
    Dokumentumparaméter neve taskDocument A kódban az Azure Cosmos DB-objektumra hivatkozó név.
    Adatbázis neve taskDatabase Adatbázis neve a dokumentumok mentéséhez.
    Gyűjtemény neve taskCollection Az adatbázis-gyűjtemény neve.
    Ha igaz, létrehozza az Azure Cosmos DB-adatbázist és -gyűjteményt Igen A gyűjtemény még nem létezik, hozza létre.
    Azure Cosmos DB-fiók kapcsolata Új beállítás Válassza az Új, majd az Azure Cosmos DB-fiók és a korábban létrehozott adatbázisfiók lehetőséget, majd kattintson az OK gombra. Ezzel létrehoz egy alkalmazásbeállítást a fiókkapcsolathoz. Ezt a beállítást használja a kötés, hogy kapcsolódjon az adatbázishoz.
  5. A kötés létrehozásához kattintson az OK gombra .

A függvénykód módosítása

Cserélje le a meglévő függvénykódot a következő kódra a kiválasztott nyelven:

Cserélje le a meglévő C#-függvényt a következő kódra:

#r "Newtonsoft.Json"

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
    string name = req.Query["name"];
    string task = req.Query["task"];
    string duedate = req.Query["duedate"];

    // We need both name and task parameters.
    if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
    {
        taskDocument = new
        {
            name,
            duedate,
            task
        };

        return (ActionResult)new OkResult();
    }
    else
    {
        taskDocument = null;
        return (ActionResult)new BadRequestResult();
    }
}

A mintakód beolvassa a HTTP-kérelem sztringjeit, és egy taskDocument objektum mezőihez rendeli azokat. A taskDocument kötés elküldi az ezen kötési paramétertől származó objektumadatokat a kötött dokumentum-adatbázisba tárolásra. Az adatbázis a függvény első futtatásakor jön létre.

A függvény és az adatbázis tesztelése

  1. Válassza a Tesztelés/Futtatás lehetőséget. A Lekérdezés területen válassza a + Paraméter hozzáadása lehetőséget, és adja hozzá a következő paramétereket a lekérdezési sztringhez:

    • name
    • task
    • duedate

    Tesztelje a függvényt.

  2. Válassza a Futtatás lehetőséget, és ellenőrizze, hogy a rendszer 200 állapotot ad-e vissza.

    Képernyőkép a Futtatás lehetőség kiválasztása után kiemelt 200-ás HTTP-válaszkódról.

  3. A Azure Portal keresse meg és válassza ki az Azure Cosmos DB-t.

    Keresse meg az Azure Cosmos DB szolgáltatást.

  4. Válassza ki az Azure Cosmos DB-fiókját, majd válassza a Data Explorer lehetőséget.

  5. Bontsa ki a TaskCollection csomópontokat, jelölje ki az új dokumentumot, és ellenőrizze, hogy a dokumentum tartalmazza-e a lekérdezési sztring értékeit és néhány további metaadatot.

    Ellenőrizze a sztringértékeket a dokumentumban.

Sikeresen hozzáadott egy kötést a HTTP-eseményindítóhoz, hogy strukturálatlan adatokat tároljon egy Azure Cosmos DB-példányban.

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

Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha várhatóan nincs szüksége ezekre az erőforrásokra a későbbiekben, az erőforráscsoport eltávolításával törölheti őket.

A Azure Portal menüben vagy a Kezdőlapon válassza az Erőforráscsoportok lehetőséget. Ezután az Erőforráscsoportok lapon válassza a myResourceGroup lehetőséget.

A myResourceGroup lapon győződjön meg arról, hogy a felsorolt erőforrásokat törölni szeretné.

Válassza az Erőforráscsoport törlése lehetőséget, írja be a myResourceGroup kifejezést a szövegmezőbe a megerősítéshez, majd válassza a Törlés lehetőséget.

Következő lépések

További információ az Azure Cosmos DB-példányhoz való kötésről: Azure Functions Azure Cosmos DB-kötések.