Sdílet prostřednictvím


Vazby tabulek Azure pro Azure Functions

Azure Functions se integruje s tabulkami Azure prostřednictvím triggerů a vazeb. Integrace s tabulkami Azure umožňuje vytvářet funkce, které čtou a zapisují data pomocí Azure Cosmos DB pro tabulky a Azure Table Storage.

Akce Typ
Čtení dat tabulky ve funkci Vstupní vazba
Povolit funkci zapisovat data tabulky 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.

Postup instalace 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 vytvořit vazbu na typy z Azure.Data.Tables. Představuje také možnost používat službu Azure Cosmos DB for Table.

Toto rozšíření je k dispozici instalací balíčku NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables do projektu s použitím verze 5.x nebo vyšší rozšíření pro objekty blob a fronty.

Pomocí rozhraní příkazového řádku .NET:

# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0

# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 5.0.0

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 ConfigureTablesExtension() objekt:

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureTablesExtension() |> 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. Podpora vazby na typy z Azure.Data.Tables je ve verzi Preview.

Vstupní vazba tabulek Azure

Při práci s jednou entitou tabulky může vstupní vazba Azure Tables svázat s následujícími typy:

Typ Popis
Serializovatelný typ JSON, který implementuje ITableEntity Funkce se pokusí deserializovat entitu do prostého typu objektu CLR (POCO). Typ musí implementovat ITableEntity nebo musí mít řetězcovou RowKey vlastnost a řetězcovou PartitionKey vlastnost.
TableEntity1 Entita jako typ podobný slovníku.

Při práci s více entitami z dotazu může vstupní vazba Tabulek Azure svázat s následujícími typy:

Typ Popis
IEnumerable<T> where T implements ITableEntity Výčet entit vrácených dotazem. Každá položka představuje jednu entitu. Typ musí implementovat T nebo musí mít řetězcovou vlastnost a řetězcovou RowKeyPartitionKey vlastnost.
TableClient1 Klient připojený k tabulce. To nabízí největší kontrolu nad zpracováním tabulky a lze ji 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.Tables 1.2.0 nebo novější a běžné závislosti pro vazby typu sady SDK.

Výstupní vazba tabulek Azure

Pokud chcete, aby funkce zapisuje do jedné entity, výstupní vazba Azure Tables může svázat s následujícími typy:

Typ Popis
Serializovatelný typ JSON, který implementuje [ITableEntity] Funkce se pokusí serializovat typ prostého starého objektu CLR (POCO) jako entitu. Typ musí implementovat [ITableEntity] nebo musí mít řetězcovou RowKey vlastnost a vlastnost řetězce PartitionKey .

Pokud chcete, aby funkce zapisovat do více entit, výstupní vazba Azure Tables může svázat s následujícími typy:

Typ Popis
T[] where T is one of the single entity types Pole obsahující více entit. Každá položka představuje jednu entitu.

V případě jiných výstupních scénářů vytvořte a použijte TableClient s jinými typy přímo z Azure.Data.Tables . Příklad použití injektáže závislostí k vytvoření typu klienta ze sady Azure SDK najdete v tématu Registrace klientů Azure.

Další kroky