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.
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ářů můžete přímo vytvářet a používat typy z Azure.Storage.Blobs .
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. |