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


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 WindowsAzure.Storagetöbbet is megtudhat arról, hogy ezek az új típusok Microsoft.Azure.Storage migrálhatók és migrálhatók hozzájuk.

Ez a verzió támogatja az eseményindítók és kötések konfigurálását a .NET Aspire integráción keresztül.

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

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.

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 hozzon létre és használjon blobClientet vagy BlobContainerClientet közvetlenül az Azure.Storage.Blobs más típusaival. 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

Általánosan elérhetőek az Azure Storage-blob SDK-típusai! A Blob-minta Python SDK-kötéseit követve ismerkedhet meg a Blobhoz 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
Blobtrigger BlobClient,
ContainerClient,
StorageStreamDownloader
BlobClient,
ContainerClient,
StorageStreamDownloader
Blobbemenet BlobClient,
ContainerClient,
StorageStreamDownloader
BlobClient,
ContainerClient,
StorageStreamDownloader

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