Reagowanie na zdarzenia usługi Blob Storage

Zdarzenia usługi Azure Storage umożliwiają aplikacjom reagowanie na zdarzenia, takie jak tworzenie i usuwanie obiektów blob. Nie wymaga to skomplikowanego kodu ani kosztownych i nieefektywnych usług sondowania. Najlepszą częścią jest to, że płacisz tylko za to, czego używasz.

Zdarzenia usługi Blob Storage są wypychane przy użyciu usługi Azure Event Grid do subskrybentów, takich jak Azure Functions, Azure Logic Apps, a nawet do własnego odbiornika http. Usługa Event Grid zapewnia niezawodne dostarczanie zdarzeń do aplikacji za pomocą rozbudowanych zasad ponawiania prób i obsługi utraconych komunikatów.

Zobacz artykuł schematu zdarzeń usługi Blob Storage, aby wyświetlić pełną listę zdarzeń, które obsługuje usługa Blob Storage.

Typowe scenariusze zdarzeń usługi Blob Storage obejmują przetwarzanie obrazów lub wideo, indeksowanie wyszukiwania lub dowolny przepływ pracy zorientowany na plik. Asynchroniczne przekazywanie plików jest doskonałym rozwiązaniem dla zdarzeń. Gdy zmiany są rzadkie, ale twój scenariusz wymaga natychmiastowego reagowania, architektura oparta na zdarzeniach może być szczególnie wydajna.

Jeśli chcesz wypróbować zdarzenia usługi Blob Storage, zobacz dowolny z następujących artykułów Szybki start:

Jeśli chcesz użyć tego narzędzia: Zobacz ten artykuł:
Azure Portal Szybki start: kierowanie zdarzeń usługi Blob Storage do internetowego punktu końcowego za pomocą witryny Azure Portal
PowerShell Szybki start: kierowanie zdarzeń magazynu do internetowego punktu końcowego za pomocą programu PowerShell
Interfejs wiersza polecenia platformy Azure Szybki start: Kierowanie zdarzeń usługi magazynu do internetowego punktu końcowego za pomocą interfejsu wiersza polecenia platformy Azure

Aby wyświetlić szczegółowe przykłady reagowania na zdarzenia usługi Blob Storage przy użyciu funkcji platformy Azure, zobacz następujące artykuły:

Uwaga

Usługa Storage (ogólnego przeznaczenia w wersji 1) nie obsługuje integracji z usługą Event Grid.

Model zdarzeń

Usługa Event Grid używa subskrypcji zdarzeń do kierowania komunikatów zdarzeń do subskrybentów. Ten obraz przedstawia relację między wydawcami zdarzeń, subskrypcjami zdarzeń i procedurami obsługi zdarzeń.

Event Grid Model

Najpierw zasubskrybuj punkt końcowy do zdarzenia. Następnie po wyzwoleniu zdarzenia usługa Event Grid wyśle dane o tym zdarzeniu do punktu końcowego.

Zobacz artykuł schematu zdarzeń usługi Blob Storage, aby wyświetlić:

  • Pełna lista zdarzeń usługi Blob Storage i sposób wyzwalania poszczególnych zdarzeń.

  • Przykładowe dane wysyłane przez usługę Event Grid dla każdego z tych zdarzeń.

  • Przeznaczenie każdej pary wartości klucza, która jest wyświetlana w danych.

Filtrowanie zdarzeń

Zdarzenia obiektów blob można filtrować według typu zdarzenia, nazwy kontenera lub nazwy obiektu, który został utworzony/usunięty. Filtry w usłudze Event Grid pasują do początku lub końca tematu, więc zdarzenia z pasującym tematem przechodzą do subskrybenta.

Aby dowiedzieć się więcej o sposobie stosowania filtrów, zobacz Filtrowanie zdarzeń dla usługi Event Grid.

Temat zdarzeń usługi Blob Storage używa formatu:

/blobServices/default/containers/<containername>/blobs/<blobname>

Aby dopasować wszystkie zdarzenia dla konta magazynu, można pozostawić puste filtry tematu.

Aby dopasować zdarzenia z obiektów blob utworzonych w zestawie kontenerów współużytkowania prefiksu, użyj filtru, subjectBeginsWith takiego jak:

/blobServices/default/containers/containerprefix

Aby dopasować zdarzenia z obiektów blob utworzonych w określonym kontenerze, użyj filtru, subjectBeginsWith takiego jak:

/blobServices/default/containers/containername/

Aby dopasować zdarzenia z obiektów blob utworzonych w określonym kontenerze współużytkowania prefiksu nazwy obiektu blob, użyj filtru, subjectBeginsWith takiego jak:

/blobServices/default/containers/containername/blobs/blobprefix

Aby dopasować zdarzenia z obiektów blob utworzonych w określonym kontenerze współużytkowania sufiksu obiektu blob, użyj filtru subjectEndsWith takiego jak ".log" lub ".jpg". Aby uzyskać więcej informacji, zobacz Event Grid Concepts (Pojęcia dotyczące usługi Event Grid).

Praktyki dotyczące korzystania ze zdarzeń

Aplikacje obsługujące zdarzenia usługi Blob Storage powinny postępować zgodnie z kilkoma zalecanymi rozwiązaniami:

  • Ponieważ wiele subskrypcji można skonfigurować pod kątem kierowania zdarzeń do tej samej procedury obsługi zdarzeń, ważne jest, aby nie zakładać, że zdarzenia pochodzą z określonego źródła, ale aby sprawdzić temat komunikatu, aby upewnić się, że pochodzi z oczekiwanego konta magazynu.

  • Podobnie sprawdź, czy typ zdarzenia jest gotowy do przetworzenia i nie zakładaj, że wszystkie otrzymane zdarzenia będą typami, których oczekujesz.

  • Podczas gdy większość komunikatów dociera niemal w czasie rzeczywistym, nie ma umowy dotyczącej poziomu usług w czasie potrzebnym na odebranie wiadomości. W niektórych przypadkach odebranie komunikatu może potrwać kilka minut. Ponieważ komunikaty mogą pojawić się po pewnym opóźnieniu, użyj pól etag, aby dowiedzieć się, czy informacje o obiektach są nadal aktualne. Aby dowiedzieć się, jak używać pola etag, zobacz Zarządzanie współbieżnością w usłudze Blob Storage.

  • Ponieważ komunikaty mogą być dostarczane z kolejnością, użyj pól programu Sequencer, aby zrozumieć kolejność zdarzeń dla dowolnego określonego obiektu. Pole sequencer to wartość ciągu reprezentująca logiczną sekwencję zdarzeń dla dowolnej konkretnej nazwy obiektu blob. Możesz użyć standardowego porównania ciągów, aby zrozumieć względną sekwencję dwóch zdarzeń o tej samej nazwie obiektu blob.

  • Zdarzenia magazynu gwarantują co najmniej jednokrotne dostarczanie do subskrybentów, co gwarantuje, że wszystkie komunikaty są wyjściowe. Jednak ze względu na ponawianie prób między węzłami zaplecza i usługami lub dostępnością subskrypcji mogą wystąpić zduplikowane komunikaty. Aby dowiedzieć się więcej na temat dostarczania komunikatów i ponawiania próby, zobacz Dostarczanie komunikatów usługi Event Grid i ponawianie próby.

  • Użyj pola blobType, aby zrozumieć, jakiego typu operacje są dozwolone w obiekcie blob, oraz jakiego typu biblioteki klienta należy użyć do uzyskiwania dostępu do obiektu blob. Prawidłowe wartości to BlockBlob lub PageBlob.

  • Użyj pola adresu URL z CloudBlockBlob konstruktorami i CloudAppendBlob , aby uzyskać dostęp do obiektu blob.

  • Ignoruj pola, których nie rozumiesz. Ta praktyka pomoże zapewnić odporność na nowe funkcje, które mogą zostać dodane w przyszłości.

  • Jeśli chcesz upewnić się, że zdarzenie Microsoft.Storage.BlobCreated jest wyzwalane tylko wtedy, gdy blokowy obiekt blob jest całkowicie zatwierdzony, przefiltruj zdarzenie dla wywołań interfejsu CopyBlobAPI REST lub , PutBlobPutBlockList lub FlushWithClose . Te wywołania interfejsu API wyzwalają zdarzenie Microsoft.Storage.BlobCreated dopiero po pełnym zatwierdzeniu danych do blokowego obiektu blob. Aby dowiedzieć się, jak utworzyć filtr, zobacz Filtrowanie zdarzeń dla usługi Event Grid.

Obsługa funkcji

Może to mieć wpływ na obsługę tej funkcji przez włączenie protokołu Data Lake Storage Gen2, sieciowego systemu plików (NFS) 3.0 lub protokołu SSH File Transfer Protocol (SFTP). Jeśli włączono dowolną z tych funkcji, zobacz Obsługa funkcji usługi Blob Storage na kontach usługi Azure Storage, aby ocenić obsługę tej funkcji.

Następne kroki

Dowiedz się więcej o usłudze Event Grid i udostępniaj zdarzenia magazynu obiektów blob przy próbie: