Översikt över Azure Blob Storage-bindningar för Azure Functions
Azure Functions integreras med Azure Storage via utlösare och bindningar. Genom att integrera med Blob Storage kan du skapa funktioner som reagerar på ändringar i blobdata samt läs- och skrivvärden.
Åtgärd | Typ |
---|---|
Kör en funktion när bloblagringsdata ändras | Utlösare |
Läsa bloblagringsdata i en funktion | Indatabindning |
Tillåt att en funktion skriver bloblagringsdata | Utdatabindning |
Installera tillägget
Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:
Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.
Funktionerna i tillägget varierar beroende på tilläggsversionen:
Den här versionen introducerar möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. En självstudiekurs om hur du konfigurerar dina funktionsappar med hanterade identiteter finns i självstudien skapa en funktionsapp med identitetsbaserade anslutningar.
Med den här versionen kan du binda till typer från Azure.Storage.Blobs. Läs mer om hur dessa nya typer skiljer sig från WindowsAzure.Storage
och Microsoft.Azure.Storage
hur du migrerar till dem från migreringsguiden för Azure.Storage.Blobs.
Den här versionen stöder konfiguration av utlösare och bindningar via .NET Aspire-integrering.
Lägg till tillägget i projektet genom att installera NuGet-paketet Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs, version 5.x eller senare.
Använda .NET CLI:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
Kommentar
Azure Blobs, Azure Queues och Azure Tables använder nu separata tillägg och refereras individuellt. Om du till exempel vill använda utlösare och bindningar för alla tre tjänsterna i din isolerade .NET-processapp bör du lägga till följande paket i projektet:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
Tidigare levererades tilläggen tillsammans som Microsoft.Azure.Functions.Worker.Extensions.Storage, version 4.x. Samma paket har också en version på 5.x som endast refererar till delade paket för blobar och köer. När du uppgraderar paketreferenserna från äldre versioner kan du därför behöva referera till det nya NuGet-paketet Microsoft.Azure.Functions.Worker.Extensions.Tables . När du refererar till dessa nyare delade paket kontrollerar du också att du inte refererar till en äldre version av det kombinerade lagringspaketet, eftersom detta resulterar i konflikter från två definitioner av samma bindningar.
Om du skriver ditt program med hjälp av F# måste du också konfigurera det här tillägget som en del av appens startkonfiguration. I anropet till eller ConfigureFunctionsWebApplication()
lägger du till ConfigureFunctionsWorkerDefaults()
ett ombud som tar en IFunctionsWorkerApplication
parameter. Anropa sedan objektet i brödtexten för ombudet ConfigureBlobStorageExtension()
:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureBlobStorageExtension() |> ignore
) |> ignore
Installera paket
Blob Storage-bindningen är en del av ett tilläggspaket som anges i din host.json projektfil. Du kan behöva ändra det här paketet för att ändra versionen av bindningen, eller om paket inte redan är installerade. Mer information finns i tilläggspaketet.
Den här versionen introducerar möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. En självstudiekurs om hur du konfigurerar dina funktionsappar med hanterade identiteter finns i självstudien skapa en funktionsapp med identitetsbaserade anslutningar.
Du kan lägga till den här versionen av tillägget från tilläggspaketet v3 genom att lägga till eller ersätta följande kod i host.json
filen:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Mer information finns i Uppdatera dina tillägg.
Bindningstyper
Vilka bindningstyper som stöds för .NET beror på både tilläggsversionen och C#-körningsläget, vilket kan vara något av följande:
Ett isolerat arbetsprocessklassbibliotek kompilerade C#-funktioner körs i en process som är isolerad från körningen.
Välj en version för att se information om bindningstyp för läget och versionen.
Den isolerade arbetsprocessen stöder parametertyper enligt tabellerna nedan.
Blobutlösare
Blobutlösaren kan binda till följande typer:
Typ | Beskrivning |
---|---|
string |
Blobinnehållet som en sträng. Använd när blobinnehållet är enkel text. |
byte[] |
Byte för blobinnehållet. |
JSON-serialiserbara typer | När en blob innehåller JSON-data försöker Functions deserialisera JSON-data till en vanlig CLR-objekttyp (POCO). |
Stream1 | En indataström av blobinnehållet. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
En klient som är ansluten till bloben. Den här uppsättningen typer ger mest kontroll för bearbetning av bloben och kan användas för att skriva tillbaka till bloben om anslutningen har tillräcklig behörighet. |
1 Om du vill använda dessa typer måste du referera till Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 eller senare och de vanliga beroendena för SDK-typbindningar.
Blobindatabindning
När du vill att funktionen ska bearbeta en enskild blob kan blobindatabindningen binda till följande typer:
Typ | Beskrivning |
---|---|
string |
Blobinnehållet som en sträng. Använd när blobinnehållet är enkel text. |
byte[] |
Byte för blobinnehållet. |
JSON-serialiserbara typer | När en blob innehåller JSON-data försöker Functions deserialisera JSON-data till en vanlig CLR-objekttyp (POCO). |
Stream1 | En indataström av blobinnehållet. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
En klient som är ansluten till bloben. Den här uppsättningen typer ger mest kontroll för bearbetning av bloben och kan användas för att skriva tillbaka till den om anslutningen har tillräcklig behörighet. |
När du vill att funktionen ska bearbeta flera blobar från en container kan blobindatabindningen binda till följande typer:
Typ | Beskrivning |
---|---|
T[] eller List<T> var T är en av bindningstyperna för enskilda blobindata |
En matris eller lista över flera blobar. Varje post representerar en blob från containern. Du kan också binda till alla gränssnitt som implementeras av dessa typer, till exempel IEnumerable<T> . |
BlobContainerClient1 | En klient som är ansluten till containern. Den här typen ger mest kontroll för bearbetning av containern och kan användas för att skriva till den om anslutningen har tillräcklig behörighet. |
1 Om du vill använda dessa typer måste du referera till Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 eller senare och de vanliga beroendena för SDK-typbindningar.
Blobutdatabindning
När du vill att funktionen ska skriva till en enda blob kan blobutdatabindningen binda till följande typer:
Typ | Beskrivning |
---|---|
string |
Blobinnehållet som en sträng. Använd när blobinnehållet är enkel text. |
byte[] |
Byte för blobinnehållet. |
JSON-serialiserbara typer | Ett objekt som representerar innehållet i en JSON-blob. Functions försöker serialisera en vanlig CLR-objekttyp (POCO) till JSON-data. |
När du vill att funktionen ska skriva till flera blobar kan blobutdatabindningen binda till följande typer:
Typ | Beskrivning |
---|---|
T[] där T är en av bindningstyperna för enskilda blobutdata |
En matris som innehåller innehåll för flera blobar. Varje post representerar innehållet i en blob. |
För andra utdatascenarier skapar och använder du en BlobClient eller BlobContainerClient med andra typer från Azure.Storage.Blobs direkt. Se Registrera Azure-klienter för ett exempel på hur du använder beroendeinmatning för att skapa en klienttyp från Azure SDK.
host.json inställningar
I det här avsnittet beskrivs konfigurationsinställningarna för funktionsappen som är tillgängliga för funktioner som använder den här bindningen. De här inställningarna gäller endast när du använder tilläggsversion 5.0.0 och senare. Exemplet host.json filen nedan innehåller endast version 2.x+-inställningarna för den här bindningen. Mer information om konfigurationsinställningar för funktionsappar i version 2.x och senare versioner finns i host.json referens för Azure Functions.
Kommentar
Det här avsnittet gäller inte för tilläggsversioner före 5.0.0. För de tidigare versionerna finns det inga funktionsinställningar för appomfattande konfiguration för blobar.
{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": 4,
"poisonBlobThreshold": 1
}
}
}
Property | Standardvärde | beskrivning |
---|---|---|
maxDegreeOfParallelism | 8 * (antalet tillgängliga kärnor) | Heltalsantalet samtidiga anrop som tillåts för alla blobutlösta funktioner i en viss funktionsapp. Det minsta tillåtna värdet är 1. |
poisonBlobThreshold | 5 | Heltalsantalet gånger för att försöka bearbeta ett meddelande innan du flyttar det till giftkön. Det minsta tillåtna värdet är 1. |