Sdílet prostřednictvím


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 Spouštěč
Č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:

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

Pokud chcete v aplikaci použít toto rozšíření vazeb, ujistěte se, že soubor host.json v kořenovém adresáři projektu obsahuje tento extensionBundle odkaz:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

V tomto příkladu version hodnota [4.0.0, 5.0.0) dává hostiteli Functions pokyn, aby používal verzi sady, která je alespoň 4.0.0 , ale menší než 5.0.0, která zahrnuje všechny potenciální verze 4.x. Tato notace efektivně udržuje vaši aplikaci na nejnovější dostupné podverzi sady rozšíření v4.x.

Pokud je to možné, měli byste použít nejnovější hlavní verzi sady rozšíření a umožnit modulu runtime automaticky udržovat nejnovější podverzi. Obsah nejnovější sady můžete zobrazit na stránce verze sady rozšíření. Další informace najdete v sadách rozšíření Azure Functions.

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.

Typy vazeb sady SDK

Typy sad SDK pro objekt blob služby Azure Storage jsou obecně dostupné! Postupujte podle vazeb sady Python SDK pro ukázku objektů blob a začněte s typy sad SDK pro objekt blob v Pythonu.

Důležité

Použití vazeb typu sady SDK vyžaduje programovací model Pythonu v2.


Vazba Typy parametrů Vzorky
Aktivační událost objektu BLOB BlobClient,
ContainerClient,
StorageStreamDownloader
BlobClient,
ContainerClient,
StorageStreamDownloader
Vstup objektu blob BlobClient,
ContainerClient,
StorageStreamDownloader
BlobClient,
ContainerClient,
StorageStreamDownloader

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