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.
Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.
Keresse meg az Azure Cosmos DB-t. Válassza az Azure Cosmos DB létrehozása lehetőséget.>
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.
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.
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
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
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.
Válassza az Áttekintés + létrehozás lehetőséget.
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.
Válassza az Ugrás az erőforrásra lehetőséget, és lépjen az Azure Cosmos DB-fiók oldalára.
Kimeneti kötés hozzáadása
Az Azure Portalon keresse meg és válassza ki a korábban létrehozott függvényalkalmazást.
Válassza a Függvények lehetőséget, majd a HttpTrigger függvényt.
Válassza az Integráció és a + Kimenet hozzáadása lehetőséget.
A kimeneti beállítások létrehozása a táblázatban megadott módon:
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. 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
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
Válassza a Futtatás lehetőséget, és ellenőrizze, hogy a rendszer 200 állapotot ad-e vissza.
Az Azure Portalon keresse meg és válassza ki az Azure Cosmos DB-t.
Válassza ki az Azure Cosmos DB-fiókot, majd válassza az Adatkezelőt.
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.
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.
- Azure Functions-eseményindítók és -kötések – fogalmak
Megtudhatja, hogyan integrálható a Functions más szolgáltatásokkal. - Az Azure Functions fejlesztői segédanyagai
További technikai információkat nyújt a Functions-futtatókörnyezetről, valamint a függvények kódolására, valamint az eseményindítók és kötések definiálására vonatkozó referenciát. - Az Azure Functions helyi kódolása és tesztelése
A függvények helyi fejlesztésének lehetőségeit ismerteti.