Azure Blob Storage-kötések az Azure Functionshez – áttekintés

Az Azure Functions triggereken és kötéseken keresztül integrálható az Azure Storage-ral. A Blob Storage-tal való integrációval olyan függvényeket hozhat létre, amelyek reagálnak a blobadatok változásaira, valamint az olvasási és írási értékekre.

Művelet Típus
Függvény futtatása Blob Storage-adatok módosításaként Eseményindító
Blob storage-adatok olvasása függvényben Bemeneti kötés
Blobtároló-adatok í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 funkciói a bővítmény verziójától függően változnak:

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 az Azure.Storage.Blobs-ból származó típusok kötését. Az Azure.Storage.Blobs migrálási útmutatójából többet is megtudhat arról, hogy ezek az új típusok WindowsAzure.StorageMicrosoft.Azure.Storage migrálhatók és migrálhatók hozzájuk.

Adja hozzá a bővítményt a projekthez a Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs NuGet csomag 5.x vagy újabb verziójának telepítésével.

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

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs

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

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

Csomag telepítése

A Blob Storage-kötés 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.

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)"
    }
}

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.

Blob-eseményindító

A blob-eseményindító a következő típusokhoz tud kapcsolódni:

Típus Leírás
string A blob tartalma sztringként. Akkor használható, ha a blob tartalma egyszerű szöveg.
byte[] A blobtartalom bájtja.
JSON szerializálható típusok Ha egy blob JSON-adatokat tartalmaz, a Functions megpróbálja deszerializálni a JSON-adatokat egy egyszerű régi CLR-objektum (POCO) típusba.
Stream1 A blobtartalom bemeneti adatfolyama.
BlobClient1,
BlockBlobClient1,
PageBlobClient1,
AppendBlobClient1,
BlobBaseClient1
A blobhoz csatlakoztatott ügyfél. Ez a típuskészlet biztosítja a blob feldolgozásának legnagyobb vezérlését, és a blobba való visszaí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.Storage.Blobs 6.0.0-s vagy újabb verziójára, valamint az SDK-típuskötések gyakori függőségeire.

Blob bemeneti kötése

Ha azt szeretné, hogy a függvény egyetlen blobot dolgozzon fel, a blob bemeneti kötése a következő típusokhoz kapcsolódhat:

Típus Leírás
string A blob tartalma sztringként. Akkor használható, ha a blob tartalma egyszerű szöveg.
byte[] A blobtartalom bájtja.
JSON szerializálható típusok Ha egy blob JSON-adatokat tartalmaz, a Functions megpróbálja deszerializálni a JSON-adatokat egy egyszerű régi CLR-objektum (POCO) típusba.
Stream1 A blobtartalom bemeneti adatfolyama.
BlobClient1,
BlockBlobClient1,
PageBlobClient1,
AppendBlobClient1,
BlobBaseClient1
A blobhoz csatlakoztatott ügyfél. Ez a típuskészlet biztosítja a blob feldolgozásának legkonfigurálását, és visszaírható, ha a kapcsolat megfelelő engedéllyel rendelkezik.

Ha azt szeretné, hogy a függvény több blobot dolgozzon fel egy tárolóból, a blob bemeneti kötése a következő típusokhoz kapcsolódhat:

Típus Leírás
T[] vagy List<T> hol T található az egyetlen blob bemeneti kötéstípusa Több blob tömbje vagy listája. Minden bejegyzés egy blobot jelöl a tárolóból. Az ilyen típusok által implementált felületekhez is csatlakozhat, például IEnumerable<T>.
BlobContainerClient1 A tárolóhoz csatlakoztatott ügyfél. Ez a típus biztosítja a tároló 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.Storage.Blobs 6.0.0-s vagy újabb verziójára, valamint az SDK-típuskötések gyakori függőségeire.

Blob kimeneti kötése

Ha azt szeretné, hogy a függvény egyetlen blobba írjon, a blob kimeneti kötése a következő típusokhoz kapcsolódhat:

Típus Leírás
string A blob tartalma sztringként. Akkor használható, ha a blob tartalma egyszerű szöveg.
byte[] A blobtartalom bájtja.
JSON szerializálható típusok Egy JSON-blob 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 blobba írjon, a blob kimeneti kötése a következő típusokhoz kapcsolódhat:

Típus Leírás
T[] hol T található az egyetlen blob kimeneti kötéstípusa? Több blob tartalmát tartalmazó tömb. Minden bejegyzés egy blob tartalmát jelöli.

Egyéb kimeneti forgatókönyvek esetén közvetlenül hozzon létre és használjon típusokat az Azure.Storage.Blobsból.

host.json beállítások

Ez a szakasz azokat a függvényalkalmazás-konfigurációs beállításokat ismerteti, amelyek a kötést használó függvényekhez érhetők el. Ezek a beállítások csak az 5.0.0-s és újabb verziójú bővítmények használatakor érvényesek. 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.

Feljegyzés

Ez a szakasz nem vonatkozik az 5.0.0.0-s verzió előtti bővítményverziókra. Ezekben a korábbi verziókban nincsenek függvényalkalmazás-szintű konfigurációs beállítások a blobokhoz.

{
    "version": "2.0",
    "extensions": {
        "blobs": {
            "maxDegreeOfParallelism": 4,
            "poisonBlobThreshold": 1
        }
    }
}
Tulajdonság Alapértelmezett Leírás
maxDegreeOfParallelism 8 * (a rendelkezésre álló magok száma) Egy adott függvényalkalmazás összes blob által aktivált függvényéhez engedélyezett egyidejű meghívások egész száma. A minimálisan megengedett érték 1.
poisonBlobThreshold 5 Az üzenet feldolgozásának egész száma, mielőtt áthelyezi azt a méregsorba. A minimálisan megengedett érték 1.

Következő lépések