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

Vazby Tabulek Azure jsou 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 vazeb, 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)"
    }
}

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 ITableEntity nebo musí mít řetězcovou RowKey vlastnost a řetězcovou PartitionKey T 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