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


Azure Cosmos DB-eseményindítók és kötések az Azure Functionshez – áttekintés

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:

API Recommendation
Azure Cosmos DB for NoSQL Az Azure Cosmos DB kötésbővítmény használata
MongoDB-hez készült Azure Cosmos DB Használjon natív ügyféloldali SDK-t.
Azure Cosmos DB for Table Használja az Azure Tables kötésbővítmény 5.x vagy újabb verzióját.
Azure Cosmos DB az Apache Cassandra-hoz Használjon natív ügyféloldali SDK-t.
Azure Cosmos DB for Apache Gremlin (Graph API) Natív ügyféloldali SDK használata
Azure Cosmos DB for PostgreSQL Használjon natív ügyféloldali SDK-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

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.

Következő lépések