Powiązania tabel platformy Azure dla usługi Azure Functions

Usługa Azure Functions integruje się z tabelami platformy Azure za pośrednictwem wyzwalaczy i powiązań. Integracja z usługą Azure Tables umożliwia tworzenie funkcji odczytujących i zapisujących dane przy użyciu usługi Azure Cosmos DB dla tabel i usługi Azure Table Storage.

Akcja Typ
Odczytywanie danych tabeli w funkcji Powiązanie wejściowe
Zezwalanie funkcji na zapisywanie danych tabeli Powiązanie wyjściowe

Instalowanie rozszerzenia

Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:

Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.

Proces instalowania rozszerzenia różni się w zależności od wersji rozszerzenia:

Ta wersja wprowadza możliwość nawiązywania połączenia przy użyciu tożsamości zamiast wpisu tajnego. Aby zapoznać się z samouczkiem dotyczącym konfigurowania aplikacji funkcji przy użyciu tożsamości zarządzanych, zobacz samouczek dotyczący tworzenia aplikacji funkcji z połączeniami opartymi na tożsamościach.

Ta wersja umożliwia powiązanie z typami z klasy Azure.Data.Tables. Wprowadzono również możliwość korzystania z usługi Azure Cosmos DB dla tabel.

To rozszerzenie jest dostępne przez zainstalowanie pakietu NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables w projekcie przy użyciu wersji 5.x lub nowszej rozszerzeń dla obiektów blob i kolejek.

Korzystanie z interfejsu wiersza polecenia platformy .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

Uwaga

Obiekty blob platformy Azure, kolejki platformy Azure i tabele platformy Azure używają teraz oddzielnych rozszerzeń i są przywołyane indywidualnie. Aby na przykład użyć wyzwalaczy i powiązań dla wszystkich trzech usług w aplikacji procesów izolowanych platformy .NET, należy dodać następujące pakiety do projektu:

Wcześniej rozszerzenia dostarczane razem jako Microsoft.Azure.Functions.Worker.Extensions.Storage, wersja 4.x. Ten sam pakiet ma również wersję 5.x, która odwołuje się tylko do podzielonych pakietów dla obiektów blob i kolejek. Podczas uaktualniania odwołań do pakietu ze starszych wersji może być konieczne dodatkowe odwołanie do nowego pakietu NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables . Ponadto podczas odwoływania się do tych nowszych pakietów podzielonych upewnij się, że nie odwołujesz się do starszej wersji połączonego pakietu magazynu, ponieważ spowoduje to konflikty z dwóch definicji tych samych powiązań.

Jeśli piszesz aplikację przy użyciu języka F#, musisz również skonfigurować to rozszerzenie w ramach konfiguracji uruchamiania aplikacji. W wywołaniu metody ConfigureFunctionsWorkerDefaults() lub ConfigureFunctionsWebApplication()dodaj delegata, który przyjmuje IFunctionsWorkerApplication parametr . Następnie w treści tego delegata wywołaj obiekt ConfigureTablesExtension() :

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore

Instalowanie pakietu

Powiązania tabel platformy Azure są częścią pakietu rozszerzenia określonego w pliku projektu host.json. Może być konieczne zmodyfikowanie tego pakietu, aby zmienić wersję powiązań lub jeśli pakiety nie zostały jeszcze zainstalowane. Aby dowiedzieć się więcej, zobacz pakiet rozszerzeń.

Ta wersja wprowadza możliwość nawiązywania połączenia przy użyciu tożsamości zamiast wpisu tajnego. Aby zapoznać się z samouczkiem dotyczącym konfigurowania aplikacji funkcji przy użyciu tożsamości zarządzanych, zobacz samouczek dotyczący tworzenia aplikacji funkcji z połączeniami opartymi na tożsamościach.

Tę wersję rozszerzenia można dodać z pakietu rozszerzeń w wersji 3, dodając lub zastępując następujący kod w host.json pliku:

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

Typy powiązań

Typy powiązań obsługiwane dla platformy .NET zależą zarówno od wersji rozszerzenia, jak i trybu wykonywania języka C#, który może być jednym z następujących elementów:

Izolowana biblioteka klas procesów roboczych skompilowana funkcja języka C# jest uruchamiana w procesie odizolowanym od środowiska uruchomieniowego.

Wybierz wersję, aby wyświetlić szczegóły typu powiązania dla trybu i wersji.

Proces izolowany proces roboczy obsługuje typy parametrów zgodnie z poniższymi tabelami. Obsługa powiązania z typami z tabeli Azure.Data.Tables jest dostępna w wersji zapoznawczej.

Powiązanie wejściowe tabel platformy Azure

Podczas pracy z jednostką z jedną tabelą powiązanie wejściowe tabel platformy Azure może wiązać się z następującymi typami:

Type Opis
Typ z możliwością serializacji JSON implementujący interfejs ITableEntity Funkcje próbują wykonać deserializacji jednostki w zwykły typ obiektu CLR (POCO). Typ musi implementować ITableEntity lub mieć właściwość string RowKey i właściwość string PartitionKey .
TableEntity1 Jednostka jako typ przypominający słownik.

Podczas pracy z wieloma jednostkami z zapytania powiązanie wejściowe tabel platformy Azure może wiązać się z następującymi typami:

Type Opis
IEnumerable<T> gdzie T implementuje interfejs ITableEntity Wyliczenie jednostek zwróconych przez zapytanie. Każdy wpis reprezentuje jedną jednostkę. Typ T musi implementować ITableEntity lub mieć właściwość string RowKey i właściwość string PartitionKey .
TableClient1 Klient połączony z tabelą. Zapewnia to największą kontrolę przetwarzania tabeli i może służyć do zapisywania w niej, jeśli połączenie ma wystarczające uprawnienia.

1 Aby użyć tych typów, należy odwołać się do elementów Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 lub nowszych oraz typowych zależności dla powiązań typu zestawu SDK.

Powiązanie wyjściowe tabel platformy Azure

Jeśli chcesz, aby funkcja zapisywała w jednej jednostce, powiązanie wyjściowe tabel platformy Azure może wiązać się z następującymi typami:

Type Opis
Typ z możliwością serializacji JSON implementujący element [ITableEntity] Funkcje próbują serializować zwykły typ obiektu CLR (POCO) jako jednostkę. Typ musi zaimplementować właściwość [ITableEntity] lub mieć właściwość string RowKey i właściwość string PartitionKey .

Jeśli chcesz, aby funkcja zapisywała w wielu jednostkach, powiązanie wyjściowe tabel platformy Azure może wiązać się z następującymi typami:

Type Opis
T[] gdzie T jest jednym z typów pojedynczej jednostki Tablica zawierająca wiele jednostek. Każdy wpis reprezentuje jedną jednostkę.

W przypadku innych scenariuszy wyjściowych utwórz typy i użyj ich bezpośrednio na podstawie tabeli Azure.Data.Tables .

Następne kroki