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:

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 Stream
TextReader
string
byte[]
Binarydata
BlobClient1
BlockBlobClient1
PageBlobClient1
AppendBlobClient1
BlobBaseClient1
Dane wejściowe obiektu blob (pojedynczy obiekt blob) Stream
TextReader
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) Stream
TextWriter
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.ReadWritewartość .

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.

Następne kroki