Přehled vazeb azure Blob Storage pro Azure Functions
Azure Functions se integruje se službou Azure Storage prostřednictvím triggerů a vazeb. Integrace se službou Blob Storage umožňuje vytvářet funkce, které reagují na změny dat objektů blob a také čtení a zápisu hodnot.
Akce | Typ |
---|---|
Spuštění funkce jako změny dat úložiště objektů blob | Trigger |
Čtení dat úložiště objektů blob ve funkci | Vstupní vazba |
Povolit funkci zapisovat data úložiště objektů blob | Výstupní vazba |
Instalace rozšíření
Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:
Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.
Funkce rozšíření se liší v závislosti na verzi rozšíření:
Tato verze představuje možnost připojení pomocí identity místo tajného kódu. Kurz konfigurace aplikací funkcí se spravovanými identitami najdete v kurzu vytvoření aplikace funkcí s připojeními založenými na identitách.
Tato verze umožňuje svázat typy z Azure.Storage.Blobs. Další informace o tom, jak se tyto nové typy liší WindowsAzure.Storage
a Microsoft.Azure.Storage
jak na ně migrovat, najdete v průvodci migrací do Azure.Storage.Blobs.
Tato verze podporuje konfiguraci triggerů a vazeb prostřednictvím integrace .NET Aspire.
Přidejte rozšíření do projektu instalací balíčku NuGet Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs verze 5.x nebo novější.
Pomocí rozhraní příkazového řádku .NET:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
Poznámka:
Objekty blob Azure, fronty Azure a tabulky Azure teď používají samostatná rozšíření a odkazují se jednotlivě. Pokud chcete například použít triggery a vazby pro všechny tři služby v izolované aplikaci .NET, měli byste do projektu přidat následující balíčky:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
Dříve byla rozšíření dodávána společně jako Microsoft.Azure.Functions.Worker.Extensions.Storage verze 4.x. Tento stejný balíček má také verzi 5.x, která odkazuje pouze na rozdělené balíčky pro objekty blob a fronty. Při upgradu odkazů na balíčky ze starších verzí proto možná budete muset odkazovat na nový balíček NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables . Při odkazování na tyto novější rozdělené balíčky se ujistěte, že neodkazujete na starší verzi kombinovaného balíčku úložiště, protože výsledkem budou konflikty ze dvou definic stejných vazeb.
Pokud píšete aplikaci pomocí F#, musíte toto rozšíření nakonfigurovat také jako součást konfigurace spuštění aplikace. Do volání ConfigureFunctionsWorkerDefaults()
nebo ConfigureFunctionsWebApplication()
přidejte delegáta, který přebírá IFunctionsWorkerApplication
parametr. Potom v těle tohoto delegáta zavolejte ConfigureBlobStorageExtension()
objekt:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureBlobStorageExtension() |> ignore
) |> ignore
Instalace sady
Vazba úložiště objektů blob je součástí sady rozšíření, která je zadaná v souboru projektu host.json. Možná budete muset tuto sadu upravit, aby se změnila verze vazby, nebo pokud sady ještě nejsou nainstalované. Další informace najdete v sadě rozšíření.
Tato verze představuje možnost připojení pomocí identity místo tajného kódu. Kurz konfigurace aplikací funkcí se spravovanými identitami najdete v kurzu vytvoření aplikace funkcí s připojeními založenými na identitách.
Tuto verzi rozšíření můžete přidat z sady rozšíření v3 přidáním nebo nahrazením následujícího kódu v host.json
souboru:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Další informace najdete v tématu Aktualizace rozšíření.
Typy vazeb
Typy vazeb podporované pro .NET závisí na režimu spouštění rozšíření i jazyka C#, což může být jedna z následujících možností:
Kompilovaná funkce C# v izolované knihovně tříd pracovních procesů běží v procesu izolovaném od modulu runtime.
Zvolte verzi a zobrazte podrobnosti o typu vazby pro režim a verzi.
Izolovaný pracovní proces podporuje typy parametrů podle následujících tabulek.
Trigger objektu blob
Trigger objektu blob může svázat s následujícími typy:
Typ | Popis |
---|---|
string |
Obsah objektu blob jako řetězec. Použije se, když je obsah objektu blob jednoduchým textem. |
byte[] |
Bajty obsahu objektu blob. |
Serializovatelné typy JSON | Když objekt blob obsahuje data JSON, služba Functions se pokusí deserializovat data JSON do prostého typu objektu CLR (POCO). |
Stream1 | Vstupní datový proud obsahu objektu blob. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Klient připojený k objektu blob. Tato sada typů nabízí největší kontrolu nad zpracováním objektu blob a lze ji použít k zápisu zpět do objektu blob, pokud má připojení dostatečná oprávnění. |
1 Pokud chcete použít tyto typy, musíte odkazovat na Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 nebo novější a běžné závislosti pro vazby typu sady SDK.
Vstupní vazba objektu blob
Pokud chcete, aby funkce zpracovávala jeden objekt blob, vstupní vazba objektu blob může svázat s následujícími typy:
Typ | Popis |
---|---|
string |
Obsah objektu blob jako řetězec. Použije se, když je obsah objektu blob jednoduchým textem. |
byte[] |
Bajty obsahu objektu blob. |
Serializovatelné typy JSON | Když objekt blob obsahuje data JSON, služba Functions se pokusí deserializovat data JSON do prostého typu objektu CLR (POCO). |
Stream1 | Vstupní datový proud obsahu objektu blob. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Klient připojený k objektu blob. Tato sada typů nabízí největší kontrolu nad zpracováním objektu blob a lze ji použít k zápisu zpět, pokud má připojení dostatečná oprávnění. |
Pokud chcete, aby funkce zpracovávala více objektů blob z kontejneru, vstupní vazba objektu blob může svázat s následujícími typy:
Typ | Popis |
---|---|
T[] nebo List<T> kde T je jedním z typů vstupních vazeb jednoho objektu blob. |
Pole nebo seznam více objektů blob. Každá položka představuje jeden objekt blob z kontejneru. Můžete také vytvořit vazbu na všechna rozhraní implementovaná těmito typy, například IEnumerable<T> . |
BlobContainerClient1 | Klient je připojený ke kontejneru. Tento typ nabízí největší kontrolu nad zpracováním kontejneru a lze ho použít k zápisu, pokud má připojení dostatečná oprávnění. |
1 Pokud chcete použít tyto typy, musíte odkazovat na Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 nebo novější a běžné závislosti pro vazby typu sady SDK.
Výstupní vazba objektu blob
Pokud chcete, aby funkce zapisuje do jednoho objektu blob, výstupní vazba objektu blob může svázat s následujícími typy:
Typ | Popis |
---|---|
string |
Obsah objektu blob jako řetězec. Použije se, když je obsah objektu blob jednoduchým textem. |
byte[] |
Bajty obsahu objektu blob. |
Serializovatelné typy JSON | Objekt představující obsah objektu blob JSON. Funkce se pokusí serializovat prostý starý typ objektu CLR (POCO) do dat JSON. |
Pokud chcete, aby funkce zapisuje do více objektů blob, výstupní vazba objektu blob může svázat s následujícími typy:
Typ | Popis |
---|---|
T[] where T is one of the single blob output binding types |
Pole obsahující obsah pro více objektů blob. Každá položka představuje obsah jednoho objektu blob. |
V případě jiných výstupních scénářů vytvořte a použijte Objekt BlobClient nebo BlobContainerClient s jinými typy přímo z Azure.Storage.Blobs . Příklad použití injektáže závislostí k vytvoření typu klienta ze sady Azure SDK najdete v tématu Registrace klientů Azure.
nastavení host.json
Tato část popisuje nastavení konfigurace aplikace funkcí, která jsou dostupná pro funkce, které používají tuto vazbu. Tato nastavení platí jenom při použití rozšíření verze 5.0.0 a vyšší. Následující příklad host.json souboru obsahuje pouze nastavení verze 2.x+ pro tuto vazbu. Další informace o nastavení konfigurace aplikace funkcí ve verzích 2.x a novějších verzích najdete v host.json referenčních informacích ke službě Azure Functions.
Poznámka:
Tato část se nevztahuje na verze rozšíření starší než 5.0.0. Pro tyto starší verze neexistuje žádné nastavení konfigurace pro aplikace funkcí pro objekty blob.
{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": 4,
"poisonBlobThreshold": 1
}
}
}
Vlastnost | Výchozí | Popis |
---|---|---|
maxDegreeOfParallelism | 8 * (počet dostupných jader) | Celočíselné číslo souběžných vyvolání povolených pro všechny funkce aktivované objekty blob v dané aplikaci funkcí Minimální povolená hodnota je 1. |
jedBlobThreshold | 5 | Celé číslo pokusu o zpracování zprávy před přesunutím do fronty jedu. Minimální povolená hodnota je 1. |