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:

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.

Další kroky