Azure Tables-kötések az Azure Functionshez

Az Azure Functions eseményindítókon és kötéseken keresztül integrálható az Azure Tables szolgáltatással. Az Azure Tables használatával olyan függvényeket hozhat létre, amelyek adatokat olvasnak és írnak az Azure Cosmos DB for Table és az Azure Table Storage használatával.

Művelet Típus
Táblaadatok olvasása függvényben Bemeneti kötés
Táblaadatok írásának engedélyezése egy függvény számára Kimeneti kötés

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:

Ez a verzió 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.

Ez a verzió lehetővé teszi a típusokhoz való kötést a forrásból Azure.Data.Tables. Emellett lehetővé teszi az Azure Cosmos DB for Table használatát is.

Ez a bővítmény a Microsoft.Azure.Functions.Worker.Extensions.Tables NuGet-csomag projektbe való telepítésével érhető el a blobok és üzenetsorok bővítményeinek 5.x vagy újabb verziójával.

A .NET parancssori felületének használata:

# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0

# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 5.0.0

Feljegyzés

Az Azure Blobs, az Azure Queues és az Azure Tables mostantól külön bővítményeket használ, és külön-külön hivatkoznak gombra. Ha például az eseményindítókat és kötéseket az izolált .NET-alkalmazás mindhárom szolgáltatásához szeretné használni, a következő csomagokat kell hozzáadnia a projekthez:

Korábban a Microsoft.Azure.Functions.Worker.Extensions.Storage 4.x verziójú bővítmények együtt szállították. Ugyanez a csomag egy 5.x verzióval is rendelkezik, amely csak a blobok és üzenetsorok osztott csomagjaira hivatkozik. A csomaghivatkozások régebbi verziókról való frissítésekor ezért előfordulhat, hogy az új Microsoft.Azure.Functions.Worker.Extensions.Tables NuGet csomagra is hivatkoznia kell. Az újabb felosztott csomagokra való hivatkozáskor győződjön meg arról is, hogy nem hivatkozik a kombinált tárolócsomag régebbi verziójára, mivel ez ütközéseket eredményez ugyanazon kötések két definíciójából.

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 ConfigureTablesExtension() az objektumot:

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore

Csomag telepítése

Az Azure Tables-kötések egy bővítménycsomag részét képezik, amely a host.json projektfájlban van megadva. Előfordulhat, hogy módosítania kell ezt a csomagot a kötések 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.

Ez a verzió 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 3. 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",
        "version": "[3.3.0, 4.0.0)"
    }
}

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. Az Azure.Data.Tables típusokhoz való kötésének támogatása előzetes verzióban érhető el.

Az Azure Tables bemeneti kötése

Egyetlen táblaentitás használata esetén az Azure Tables bemeneti kötése a következő típusokhoz köthető:

Típus Leírás
ITableEntity-t implementáló JSON szerializálható típus A Functions megpróbálja deszerializálni az entitást egy egyszerű régi CLR-objektum (POCO) típusba. A típusnak implementálnia kell az ITableEntity-t, vagy sztringtulajdonságokkalRowKey és sztringtulajdonságokkal PartitionKey kell rendelkeznie.
TableEntity1 Az entitás szótárszerű típus.

Ha több entitást használ egy lekérdezésből, az Azure Tables bemeneti kötése a következő típusokhoz köthető:

Típus Leírás
IEnumerable<T> ahol T implementálja az ITableEntity-t A lekérdezés által visszaadott entitások számbavétele. Minden bejegyzés egy entitást jelöl. A típusnak T implementálnia kell az ITableEntity-t, vagy sztringtulajdonságokkalRowKey és sztringtulajdonságokkal PartitionKey kell rendelkeznie.
TableClient1 A táblához csatlakoztatott ügyfél. Ez biztosítja a tábla feldolgozásának legnagyobb vezérlését, és írásra is használható, ha a kapcsolat megfelelő engedéllyel rendelkezik.

1 Ezeknek a típusoknak a használatához hivatkoznia kell a Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 vagy újabb táblákra, valamint az SDK-típuskötések gyakori függőségeire.

Azure Tables kimeneti kötése

Ha azt szeretné, hogy a függvény egyetlen entitásba írjon, az Azure Tables kimeneti kötése a következő típusokhoz kapcsolódhat:

Típus Leírás
Az [ITableEntity] implementálását megvalósító JSON szerializálható típus A Functions egy egyszerű régi CLR-objektumtípust (POCO) kísérel meg entitásként szerializálni. A típusnak implementálnia kell az [ITableEntity] elemet, vagy sztringtulajdonságokkal RowKey és sztringtulajdonságokkal PartitionKey kell rendelkeznie.

Ha azt szeretné, hogy a függvény több entitásba írjon, az Azure Tables kimeneti kötése a következő típusokhoz kapcsolódhat:

Típus Leírás
T[] ahol T az egyetlen entitástípusok egyike Több entitást tartalmazó tömb. Minden bejegyzés egy entitást jelöl.

Egyéb kimeneti forgatókönyvek esetén közvetlenül hozzon létre és használjon típusokat az Azure.Data.Tables szolgáltatásból.

Következő lépések