Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikksorozat bemutatja, hogyan használható az Azure Cosmos DB-kötések az Azure Functionsben. 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 |
Fontos
Az Azure Cosmos DB kötési bővítményének ez a verziója támogatja az Azure Functions 4.x-es verzióját. Ha az alkalmazás továbbra is a Functions-futtatókörnyezet 1.x-es verzióját használja, tekintse meg az Azure Functions 1.x-hez készült Azure Cosmos DB-kötéseket.
A Functions v1.x futtatókörnyezetében ez a kötés eredetileg a neve DocumentDBvolt.
Támogatott API-k
Ez a táblázat azt jelzi, hogyan csatlakozhat a különböző Azure Cosmos DB API-khoz a függvénykódból:
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
Ha használni szeretné ezt a kötéskiterjesztést az alkalmazásban, győződjön meg arról, hogy a projekt gyökerében található host.json fájl tartalmazza a extensionBundle következő hivatkozást:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Ebben a példában az version érték [4.0.0, 5.0.0) arra utasítja a Functions-gazdagépet, hogy 4.0.0 legalább, de annál kisebb 5.0.0csomagverziót használjon, amely tartalmazza a 4.x összes lehetséges verzióját. Ez a jelölés hatékonyan fenntartja az alkalmazást a v4.x bővítménycsomag legújabb elérhető alverzióján.
Ha lehetséges, a legújabb bővítménycsomag főverziót kell használnia, és engedélyeznie kell, hogy a futtatókörnyezet automatikusan fenntartsa a legújabb alverziót. A legújabb csomag tartalmát a bővítménykötegek kiadási oldalán tekintheti meg. További információ: Azure Functions-bővítménykötegek.
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.
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 hozzon létre és használjon CosmosClientet más típusokkal közvetlenül a Microsoft.Azure.Cosmosból. Tekintse meg az Azure-ügyfelek regisztrálását a függőséginjektálás használatával egy ügyféltípus Azure SDK-ból való létrehozásához.
SDK-kötéstípusok
Az Azure Cosmos SDK-típustámogatása előzetes verzióban érhető el. A CosmosDB-minta Python SDK-kötéseit követve ismerkedhet meg a Cosmoshoz készült SDK-típusokkal a Pythonban.
Fontos
Az SDK-típuskötések használatához a Python v2 programozási modell szükséges.
| Kötés | Paramétertípusok | Minták |
|---|---|---|
| CosmosDB-bemenet |
ContainerProxy, CosmosClient, DatabaseProxy |
ContainerProxy,CosmosClient,DatabaseProxy |
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óban. A host.json fájl beállításai a függvényalkalmazás-példány összes függvényére vonatkoznak. A függvényalkalmazás konfigurációs beállításaival kapcsolatos további információkért lásd host.json Azure Functionsre vonatkozó referenciá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. Beállítások: Direct közvetlenül csatlakozik a háttérreplikákhoz TCP-en keresztül, és alacsonyabb késést biztosít, és Gateway a kérelmeket egy előtér-átjárón keresztül irányítja HTTPS-en keresztül. További információ: Azure Cosmos DB SDK kapcsolati módok. |
| 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. |