Azure Cosmos DB-eseményindítók és kötések az Azure Functions 2.x-hez és magasabb szintű áttekintés
Ez a cikkkészlet bemutatja, hogyan használható az Azure Cosmos DB-kötések az Azure Functions 2.x és újabb verzióiban. Az Azure Functions támogatja az Azure Cosmos DB trigger-, bemeneti és kimeneti kötéseit.
Művelet | Típus |
---|---|
Függvény futtatása Azure Cosmos DB-dokumentum létrehozásakor vagy módosításakor | Eseményindító |
Azure Cosmos DB-dokumentum olvasása | Bemeneti kötés |
Azure Cosmos DB-dokumentum módosításainak mentése | Kimeneti kötés |
Feljegyzés
Ez a hivatkozás az Azure Functions 2.x és újabb verziójára vonatkozik. A kötések a Functions 1.x-ben való használatáról az Azure Functions 1.x-hez készült Azure Cosmos DB-kötések című témakörben olvashat.
Ezt a kötést eredetileg DocumentDB-nek hívták. Az Azure Functions 2.x és újabb verzióiban az eseményindító, a kötések és a csomag neve Azure Cosmos DB.
Támogatott API-k
Az Azure Cosmos DB-kötések csak az Azure Cosmos DB for NoSQL-hez használhatók. Az Azure Cosmos DB for Table támogatása a Table Storage-kötések használatával érhető el, kezdve az 5.x kiterjesztéssel. Az összes többi Azure Cosmos DB API esetében a függvényből kell elérnie az adatbázist az API statikus ügyfélalkalmazásával, beleértve a MongoDB-hez készült Azure Cosmos DB-t, a Cassandra-hoz készült Azure Cosmos DB-t és az Apache Gremlinhez készült Azure Cosmos DB-t.
A bővítmény telepítése
A telepített NuGet-csomag a függvényalkalmazásban használt C# módtól függ:
A függvények izolált C# feldolgozói folyamatban futnak. További információ: Útmutató a C# Azure Functions izolált feldolgozói folyamatban való futtatásához.
A bővítmény telepítésének folyamata a bővítmény verziójától függően változik:
Az Azure Cosmos DB kötések bővítményének ezen verziója lehetővé teszi, hogy titkos kulcs helyett identitással csatlakozzon. A függvényalkalmazások felügyelt identitásokkal való konfigurálásáról szóló oktatóanyagot az identitásalapú kapcsolatokkal rendelkező függvényalkalmazások létrehozásáról szóló oktatóanyagban tekintheti meg.
Adja hozzá a bővítményt a projekthez a NuGet-csomag 4.x-es verziójának telepítésével.
Ha az alkalmazást az F# használatával írja, ezt a bővítményt is konfigurálnia kell az alkalmazás indítási konfigurációjának részeként. A hívásban ConfigureFunctionsWorkerDefaults()
ConfigureFunctionsWebApplication()
adjon hozzá egy paramétert használó meghatalmazottat IFunctionsWorkerApplication
. Ezután a meghatalmazott törzsén belül hívja meg ConfigureCosmosDBExtension()
az objektumot:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureCosmosDBExtension() |> ignore
) |> ignore
Csomag telepítése
Az Azure Cosmos DB kötések bővítménye egy bővítménycsomag része, amely a host.json projektfájlban van megadva. Előfordulhat, hogy módosítania kell ezt a csomagot a kötés verziójának módosításához, vagy ha a csomagok még nincsenek telepítve. További információkért tekintse meg a bővítménycsomagot.
Az Azure Cosmos DB SDK sémaváltozásai miatt az Azure Cosmos DB-bővítmény 4.x verziójához a Java-függvényekhez azure-functions-java-library V3.0.0 szükséges.
A csomag ezen verziója az Azure Cosmos DB kötések bővítményének 4.x verzióját tartalmazza, amely lehetővé teszi, hogy titkos kulcs helyett identitással csatlakozzon. A függvényalkalmazások felügyelt identitásokkal való konfigurálásáról szóló oktatóanyagot az identitásalapú kapcsolatokkal rendelkező függvényalkalmazások létrehozásáról szóló oktatóanyagban tekintheti meg.
A bővítmény ezen verzióját a 4-es verziójú előzetes verziójú bővítménycsomagból is hozzáadhatja, ha hozzáadja vagy lecseréli a következő kódot a host.json
fájlban:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.0.0, 5.0.0)"
}
}
További információ: Bővítmények frissítése.
Kötéstípusok
A .NET-hez támogatott kötéstípusok a bővítményverziótól és a C# végrehajtási módtól is függenek, ami az alábbiak egyike lehet:
A C# függvényt lefordított izolált feldolgozói folyamatosztály-kódtár a futtatókörnyezettől elkülönített folyamatban fut.
Válasszon ki egy verziót a mód és a verzió kötéstípusának részleteinek megtekintéséhez.
Az izolált feldolgozó folyamat az alábbi táblázatoknak megfelelően támogatja a paramétertípusokat. A Microsoft.Azure.Cosmos-bólszármazó típusokhoz való kötés támogatása előzetes verzióban érhető el.
Cosmos DB-eseményindító
Ha azt szeretné, hogy a függvény egyetlen dokumentumot dolgoz fel, a Cosmos DB-eseményindító a következő típusokhoz tud kapcsolódni:
Típus | Leírás |
---|---|
JSON szerializálható típusok | A Functions megpróbálja deszerializálni a dokumentum JSON-adatait a Cosmos DB változáscsatornájából egy egyszerű régi CLR-objektum (POCO) típusba. |
Ha azt szeretné, hogy a függvény feldolgozza a dokumentumok kötegét, a Cosmos DB-eseményindító a következő típusokhoz tud kapcsolódni:
Típus | Leírás |
---|---|
IEnumerable<T> ahol T egy JSON szerializálható típus |
A kötegben szereplő entitások számbavétele. Minden bejegyzés egy dokumentumot jelöl a Cosmos DB változáscsatornájából. |
Cosmos DB bemeneti kötés
Ha azt szeretné, hogy a függvény egyetlen dokumentumot dolgoz fel, a Cosmos DB bemeneti kötése a következő típusokhoz kapcsolódhat:
Típus | Leírás |
---|---|
JSON szerializálható típusok | A Functions megpróbálja deszerializálni a dokumentum JSON-adatait egy egyszerű régi CLR-objektum (POCO) típusba. |
Ha azt szeretné, hogy a függvény több dokumentumot dolgoz fel egy lekérdezésből, a Cosmos DB bemeneti kötése a következő típusokhoz kapcsolódhat:
Típus | Leírás |
---|---|
IEnumerable<T> ahol T egy JSON szerializálható típus |
A lekérdezés által visszaadott entitások számbavétele. Minden bejegyzés egy dokumentumot jelöl. |
CosmosClient1 | A Cosmos DB-fiókhoz csatlakoztatott ügyfél. |
1. adatbázis | A Cosmos DB-adatbázishoz csatlakoztatott ügyfél. |
1. tároló | A Cosmos DB-tárolóhoz csatlakoztatott ügyfél. |
1 Ezeknek a típusoknak a használatához hivatkoznia kell a Microsoft.Azure.Functions.Worker.Extensions.CosmosDB 4.4.0-s vagy újabb verziójára, valamint az SDK-típuskötések gyakori függőségeire.
Cosmos DB kimeneti kötés
Ha azt szeretné, hogy a függvény egyetlen dokumentumba írjon, a Cosmos DB kimeneti kötése a következő típusokhoz köthet:
Típus | Leírás |
---|---|
JSON szerializálható típusok | Egy dokumentum JSON-tartalmát képviselő objektum. A Functions egy egyszerű régi CLR-objektum (POCO) típust próbál JSON-adatokká szerializálni. |
Ha azt szeretné, hogy a függvény több dokumentumba írjon, a Cosmos DB kimeneti kötése a következő típusokhoz köthet:
Típus | Leírás |
---|---|
T[] hol T van JSON szerializálható típus |
Több dokumentumot tartalmazó tömb. Minden bejegyzés egy dokumentumot jelöl. |
Egyéb kimeneti forgatókönyvek esetén közvetlenül a Microsoft.Azure.Cosmosból hozhat létre és használhat típusokat .
Kivételek és visszatérési kódok
Kötés | Referencia |
---|---|
Azure Cosmos DB | HTTP-állapotkódok az Azure Cosmos DB-hez |
host.json beállítások
Ez a szakasz a kötéshez elérhető konfigurációs beállításokat ismerteti a 2.x és újabb verziókban. A host.json fájl beállításai a függvényalkalmazás-példány összes függvényére vonatkoznak. Az alábbi példában host.json fájl csak a kötés 2.x+ verziójának beállításait tartalmazza. A függvényalkalmazások konfigurációs beállításairól a 2.x és újabb verziókban host.json Azure Functionsre vonatkozó hivatkozásban talál további információt.
{
"version": "2.0",
"extensions": {
"cosmosDB": {
"connectionMode": "Gateway",
"userAgentSuffix": "MyDesiredUserAgentStamp"
}
}
}
Tulajdonság | Alapértelmezett | Leírás |
---|---|---|
connectionMode | Gateway |
A függvény által az Azure Cosmos DB szolgáltatáshoz való csatlakozáskor használt kapcsolati mód. A beállítások a következők:Direct Gateway |
userAgentSuffix | n.a. | Hozzáadja a megadott sztringértéket az eseményindító vagy kötés által a szolgáltatáshoz küldött összes kéréshez. Ez megkönnyíti a tevékenység nyomon követését az Azure Monitorban egy adott függvényalkalmazás alapján, és szűréssel User Agent . |