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.
A Azure Portal menüben vagy a Kezdőlapon válassza az Erőforrás létrehozása lehetőséget.
Keresse meg az Azure Cosmos DB-t. Válassza azAzure Cosmos DBlé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özöljük az Azure Cosmos DB-ben.
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.
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
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
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.
Válassza az Áttekintés + létrehozás lehetőséget.
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.
Válassza az Erőforrás megnyitása lehetőséget az Azure Cosmos DB-fiók oldalának megtekintéséhez.
Kimeneti kötés hozzáadása
A Azure Portal keresse meg és válassza ki a korábban létrehozott függvényalkalmazást.
Válassza a Függvények, majd a HttpTrigger függvényt.
Válassza az Integráció és + Kimenet hozzáadása lehetőséget.
Használja a Kimenet létrehozása beállítást 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 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. 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.
A Azure Portal keresse meg és válassza ki az Azure Cosmos DB-t.
Válassza ki az Azure Cosmos DB-fiókját, majd válassza a Data Explorer lehetőséget.
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.
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.
- Azure Functions-eseményindítók és -kötések – fogalmak
Ismerje meg, 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 meghatározá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.