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:
- 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 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.