Megosztás a következőn keresztül:


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. Az Azure Functions-lel kombinálva az Azure Cosmos DB gyors és egyszerűvé teszi az adatok tárolását sokkal kevesebb kóddal, mint amennyi szükséges az adatok relációs adatbázisban való tárolásához.

Feljegyzé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:

Ez a cikk kiindulópontként használja az Első függvény létrehozása az Azure Portalon létrehozott erőforrásokat. Hajtsa végre az itt található lépéseket a függvényalkalmazás létrehozásához, ha eddig 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. Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.

  2. Keresse meg az Azure Cosmos DB-t. Válassza az Azure Cosmos DB lé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özli az Azure Cosmos DB.

  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 adja meg az új erőforráscsoport egyedi nevét.
    Fiók neve Egyedi név Adjon meg egy nevet az Azure Cosmos DB-fiók azonosításához. A rendszer a documents.azure.com utótaggal egészíti ki a megadott nevet az URI létrehozásához, ezért válasszon 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özelebb lévő helyet, hogy a lehető leggyorsabb hozzáférést biztosítsa az adatokhoz.
    Kapacitásmód Kiosztott átviteli sebesség vagy kiszolgáló nélküli A kiosztott átviteli sebesség kiválasztásával hozzon létre egy fiókot kiosztott átviteli módban. A Kiszolgáló nélküli lehetőséget választva kiszolgáló nélküli módban hozhat létre fiókot.
    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ület ingyenesen elérhető egy fiókban. További információk az ingyenes szintről.
    A 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. A fiók létrehozása után frissítheti vagy eltávolíthatja ezt a korlátot.

    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 lapról.

    Feljegyzé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:

    • Ingyenes szintű kedvezmény alkalmazása
    • A 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, ha párosítja a régiót egy párrégióval. Később további régiókat is hozzáadhat a fiókjához.
    Többrégiós írások Letiltás A többrégiós írási képesség lehetővé teszi, hogy kihasználja az adatbázisok és tárolók kiosztott átviteli sebességét világszerte.
    Rendelkezésre állási zónák Letiltás A rendelkezésre állási zónák segítségével tovább javíthatja az alkalmazás rendelkezésre állását és rugalmasságát.

    Feljegyzés

    Az alábbi 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ő Alapszintű beállítások lapon:

    • Georedundancia
    • Többrégiós írások
  6. Igény szerint további részleteket is konfigurálhat az alábbi lapokban:

    • 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áljon rendszeres vagy folyamatos biztonsági mentési szabályzatot.
    • Titkosítás. Használjon szolgáltatás által felügyelt vagy ügyfél által felügyelt kulcsot.
    • Címkék. A címkék olyan név/érték párok, amelyek segítségével kategóriákba sorolhatja az erőforrásokat, és ha ugyanazt a címkét több erőforrásra és erőforráscsoportra is alkalmazza, ezzel együtt jelenítheti meg és kezelheti azok összesített számlázási adatait.
  7. Válassza az Áttekintés + létrehozás lehetőséget.

  8. Ellenőrizze a fiók beállításait, 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, hogy a portálon megjelenjen Az üzembe helyezés befejeződött üzenet.

    Képernyőkép az üzembe helyezés befejezéséről.

  9. Válassza az Ugrás az erőforrásra lehetőséget, és lépjen az Azure Cosmos DB-fiók oldalára.

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

Kimeneti kötés hozzáadása

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

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

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

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

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

  4. A kimeneti beállítások létrehozása 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 Annak a kötéstípusnak a neve, amellyel létre szeretné hozni a kimeneti kötést az Azure Cosmos DB-be.
    Dokumentumparaméter neve taskDocument Az Azure Cosmos DB-objektumra hivatkozó név a kódban.
    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 lehetőséget, majd válassza az Azure Cosmos DB-fiókot és a korábban létrehozott adatbázisfiókot, 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 200-ás HTTP-válaszkód állapotáról a Futtatás kiválasztása után.

  3. Az Azure Portalon 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ókot, majd válassza az Adatkezelőt.

  5. Bontsa ki a TaskCollection csomópontokat, jelölje ki az új dokumentumot, és győződjön meg arról, hogy a dokumentum tartalmazza a lekérdezési sztring értékeit és néhány további metaadatot.

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

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.

Az Azure Portal menüjében vagy kezdőlapján 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.