Powiązania usługi Azure Blob Storage dla Azure Functions omówienie
Azure Functions integruje się z usługą Azure Storage za pośrednictwem wyzwalaczy i powiązań. Integracja z usługą Blob Storage umożliwia tworzenie funkcji reagujących na zmiany w danych obiektów blob, a także odczytywanie i zapisywanie wartości.
Akcja | Typ |
---|---|
Uruchamianie funkcji w miarę zmian danych magazynu obiektów blob | Wyzwalacz |
Odczytywanie danych magazynu obiektów blob w funkcji | Powiązanie wejściowe |
Zezwalanie funkcji na zapisywanie danych magazynu obiektów blob | Powiązanie wyjściowe |
Instalowanie rozszerzenia
Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C# używanego w aplikacji funkcji:
Funkcje są wykonywane w tym samym procesie co host usługi Functions. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji biblioteki klas języka C# przy użyciu Azure Functions.
W odmianie tego modelu funkcje można uruchamiać przy użyciu skryptów języka C#, które są obsługiwane głównie w przypadku edytowania portalu C#. Aby zaktualizować istniejące rozszerzenia powiązań dla aplikacji skryptów języka C# działających w portalu bez konieczności ponownego publikowania aplikacji funkcji, zobacz Aktualizowanie rozszerzeń.
Funkcjonalność rozszerzenia różni się w zależności od wersji rozszerzenia:
W tej sekcji opisano używanie biblioteki klas. W przypadku skryptów języka C# należy zamiast tego zainstalować pakiet rozszerzeń w wersji 4.x.
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 elementu Azure.Storage.Blobs. Dowiedz się więcej o tym, jak te nowe typy różnią się od WindowsAzure.Storage
i Microsoft.Azure.Storage
jak przeprowadzić migrację do nich z przewodnika migracji Azure.Storage.Blobs.
To rozszerzenie jest dostępne przez zainstalowanie pakietu NuGet Microsoft.Azure.WebJobs.Extensions.Storage.Blobs w wersji 5.x.
Korzystanie z interfejsu wiersza polecenia platformy .NET:
dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage.Blobs --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 przetwarzania platformy .NET, należy dodać następujące pakiety do projektu:
- Microsoft.Azure.WebJobs.Extensions.Storage.Blobs
- Microsoft.Azure.WebJobs.Extensions.Storage.Queues
- Microsoft.Azure.WebJobs.Extensions.Tables
Wcześniej rozszerzenia dostarczane razem jako Microsoft.Azure.WebJobs.Extensions.Storage w wersji 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. W przypadku uaktualniania odwołań do pakietu ze starszych wersji może być konieczne dodatkowe odwołanie do nowego pakietu NuGet Microsoft.Azure.WebJobs.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 dwiema definicjami tych samych powiązań.
Instalowanie pakietu
Powiązanie usługi Blob Storage jest częścią pakietu rozszerzenia określonego w pliku projektu host.json. Może być konieczne zmodyfikowanie tego pakietu, aby zmienić wersję powiązania 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)"
}
}
Aby dowiedzieć się więcej, zobacz Aktualizowanie rozszerzeń.
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:
Biblioteka klas w procesie to skompilowana funkcja języka C# działa w tym samym procesie co środowisko uruchomieniowe usługi Functions.
Wybierz wersję, aby wyświetlić szczegóły typu powiązania dla trybu i wersji.
Rozszerzenie Azure Blobs obsługuje typy parametrów zgodnie z poniższą tabelą.
Scenariusz wiązania | Typy parametrów |
---|---|
Wyzwalacz obiektu blob | StreamTextReader string byte[] Binarydata BlobClient1 BlockBlobClient1 PageBlobClient1 AppendBlobClient1 BlobBaseClient1 |
Dane wejściowe obiektu blob (pojedynczy obiekt blob) | StreamTextReader string byte[] Binarydata BlobClient1 BlockBlobClient1 PageBlobClient1 AppendBlobClient1 BlobBaseClient1 |
Dane wejściowe obiektu blob (wiele obiektów blob z kontenera) | IEnumerable<T> gdzie T jest jednym z typów powiązań wejściowych pojedynczego obiektu blob |
Dane wyjściowe obiektu blob (pojedynczy obiekt blob) | StreamTextWriter string byte[] |
Dane wyjściowe obiektu blob (wiele obiektów blob) | ICollector<T> lub IAsyncCollector<T> gdzie T jest jednym z typów powiązań wyjściowych pojedynczego obiektu blob |
1 Typy klientów wymagają Access
ustawienia właściwości atrybutu na FileAccess.ReadWrite
wartość .
Przykłady użycia tych typów można znaleźć w repozytorium GitHub dla rozszerzenia. Dowiedz się więcej o typach z zestawu Azure SDK, o tym, jak różnią się one od wcześniejszych wersji i jak przeprowadzić migrację do nich z przewodnika migracji azure.Storage.Blobs.
Ustawienia pliku host.json
W tej sekcji opisano ustawienia konfiguracji aplikacji funkcji dostępne dla funkcji korzystających z tego powiązania. Te ustawienia mają zastosowanie tylko w przypadku korzystania z rozszerzenia w wersji 5.0.0 lub nowszej. Poniższy przykładowy plik host.json zawiera tylko ustawienia wersji 2.x+ dla tego powiązania. Aby uzyskać więcej informacji na temat ustawień konfiguracji aplikacji funkcji w wersjach 2.x i nowszych, zobacz dokumentację pliku host.json dla Azure Functions.
Uwaga
Ta sekcja nie dotyczy wersji rozszerzeń przed wersją 5.0.0. W przypadku tych wcześniejszych wersji nie ma żadnych ustawień konfiguracji dla obiektów blob obejmujących aplikację funkcji.
{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": 4,
"poisonBlobThreshold": 1
}
}
}
Właściwość | Domyślny | Opis |
---|---|---|
Maxdegreeofparallelism | 8 * (liczba dostępnych rdzeni) | Liczba całkowita współbieżnych wywołań dozwolonych dla wszystkich funkcji wyzwalanych przez obiekty blob w danej aplikacji funkcji. Minimalna dozwolona wartość to 1. |
poisonBlobThreshold | 5 | Liczba całkowita liczby prób przetworzenia komunikatu przed przeniesieniem go do kolejki trucizny. Minimalna dozwolona wartość to 1. |