Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Azure Data Factory
Azure Synapse Analytics
Napiwek
Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia ADF można zaktualizować do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analiz w czasie rzeczywistym oraz raportowania.
Artykuł ten opisuje wyzwalacze zdarzeń związanych z magazynem, które można utworzyć w potokach Azure Data Factory lub Azure Synapse Analytics.
Architektura sterowana zdarzeniami to typowy wzorzec integracji danych, który obejmuje produkcję, wykrywanie, zużycie i reakcję na zdarzenia. Scenariusze integracji danych często wymagają od klientów wyzwalania potoków wyzwalanych ze zdarzeń na koncie Azure Storage, takich jak przybycie lub usunięcie pliku na koncie Azure Blob Storage. Potoki usługi Data Factory i Azure Synapse Analytics natywnie integrują się z Azure Event Grid co umożliwia wyzwalanie potoków na takich zdarzeniach.
Zagadnienia dotyczące aktywacji zdarzeń przechowywania danych
Podczas korzystania z wyzwalaczy zdarzeń magazynu należy wziąć pod uwagę następujące kwestie:
- Integracja opisana w tym artykule zależy od Azure Event Grid. Upewnij się, że subskrypcja jest zarejestrowana u dostawcy zasobów usługi Event Grid. Aby uzyskać więcej informacji, zobacz Dostawcy zasobów i ich typy. Musisz móc wykonać działanie
Microsoft.EventGrid/eventSubscriptions/. Akcja ta jest częścią wbudowanej roliEventGrid EventSubscription Contributor. - Jeśli używasz tej funkcji w Azure Synapse Analytics, upewnij się, że subskrypcja została również zarejestrowana u dostawcy zasobów usługi Data Factory. W przeciwnym razie zostanie wyświetlony komunikat z informacją, że "tworzenie subskrypcji zdarzeń nie powiodło się".
- Jeśli konto Blob Storage znajduje się za punktem końcowym private i blokuje dostęp do sieci publicznej, należy skonfigurować reguły sieci, aby zezwalać na komunikację z Blob Storage do usługi Event Grid. Możesz udzielić dostępu magazynu do zaufanych usług Azure, takich jak Event Grid, zgodnie z dokumentacją Storage lub skonfigurować prywatne punkty końcowe dla usługi Event Grid, które mapują się na przestrzeń adresową sieci wirtualnej, postępując zgodnie z dokumentacją usługi Event Grid.
- Wyzwalacz zdarzenia magazynu obsługuje obecnie tylko konta magazynu Azure Data Lake Storage Gen2 i konta magazynu ogólnego przeznaczenia wersji 2. Jeśli pracujesz ze zdarzeniami magazynu protokołu bezpiecznego transferu plików (SFTP), musisz również określić API danych SFTP w sekcji filtrowania. Ze względu na ograniczenia Event Grid, usługa Data Factory obsługuje maksymalnie 500 wyzwalaczy zdarzeń magazynowych na jedno konto magazynowe.
- Aby utworzyć nowy wyzwalacz zdarzenia magazynu lub zmodyfikować istniejący, konto Azure, którego używasz do logowania się do usługi i publikowania wyzwalacza zdarzeń magazynu, musi mieć odpowiednie uprawnienia kontroli dostępu opartej na rolach (Azure RBAC) na koncie magazynu. Żadne inne uprawnienia nie są wymagane. Rejestrator usługi dla Azure Data Factory i Azure Synapse Analytics nie musi mieć specjalnych uprawnień do konta magazynu lub Event Grid. Aby uzyskać więcej informacji na temat kontroli dostępu, zobacz sekcję Kontrola dostępu oparta na rolach.
- Jeśli zastosowano blokadę Azure Resource Manager do konta magazynu, może to wpłynąć na zdolność wyzwalacza blob do tworzenia lub usuwania blobów. Blokada
ReadOnlyuniemożliwia tworzenie i usuwanie, a blokadaDoNotDeleteuniemożliwia usunięcie. Upewnij się, że uwzględnisz te ograniczenia, aby uniknąć problemów z wyzwalaczami. - Nie zalecamy używania wyzwalaczy przybycia plików jako mechanizmu wyzwalającego wyjść przepływu danych. Przepływy danych wykonują szereg zadań zmiany nazw plików i przetasowania plików partycji w folderze docelowym, które mogą przypadkowo wyzwolić zdarzenie pojawienia się pliku przed zakończeniem przetwarzania danych.
Tworzenie wyzwalacza za pomocą interfejsu użytkownika
W tej sekcji przedstawiono sposób tworzenia wyzwalacza zdarzenia magazynowania w interfejsie użytkownika potoków Azure Data Factory i Azure Synapse Analytics.
Przejdź do karty Edit w usłudze Data Factory lub Integrate w Azure Synapse Analytics.
W menu wybierz pozycję Wyzwalacz, a następnie wybierz pozycję Nowy/Edytuj.
Na stronie Dodawanie wyzwalaczy wybierz pozycję Wybierz wyzwalacz, a następnie wybierz pozycję + Nowy.
Wybierz typ wyzwalacza zdarzenia magazynowania.
Wybierz konto magazynowe z listy rozwijanej subskrypcji Azure lub ręcznie, używając identyfikatora zasobu konta magazynowego. Wybierz kontener, na którym mają wystąpić zdarzenia. Wybór kontenera jest wymagany, ale wybranie wszystkich kontenerów może prowadzić do dużej liczby zdarzeń.
Właściwości
Blob path begins withiBlob path ends withumożliwiają określenie kontenerów, folderów i nazw obiektów blob, dla których mają być odbierane zdarzenia. Wyzwalacz zdarzenia przechowywania wymaga zdefiniowania co najmniej jednej z tych właściwości. Można użyć różnych wzorców dla właściwościBlob path begins withiBlob path ends with, jak pokazano w przykładach w dalszej części tego artykułu.-
Blob path begins with: ścieżka blobu musi rozpoczynać się od ścieżki folderu. Prawidłowe wartości to2018/i2018/april/shoes.csv. Nie można wybrać tego pola, jeśli nie wybrano kontenera. -
Blob path ends with: Ścieżka obiektu blob musi kończyć się nazwą pliku lub rozszerzeniem. Prawidłowe wartości toshoes.csvi.csv. Nazwy kontenerów i folderów, po określeniu, muszą być oddzielone segmentem/blobs/. Na przykład kontener o nazwieordersmoże mieć wartość/orders/blobs/2018/april/shoes.csv. Aby określić folder w dowolnym kontenerze, pomiń znak wiodący/. Na przykładapril/shoes.csvwyzwala zdarzenie w dowolnym pliku o nazwieshoes.csvw folderze o nazwieaprilw dowolnym kontenerze.
Należy pamiętać, że
Blob path begins withiBlob path ends withsą jedynymi dozwolonymi wzorcami dopasowania w wyzwalaczu zdarzeń pamięci masowej. Inne typy dopasowywania znaków wieloznacznych nie są obsługiwane dla typu wyzwalacza.-
Wybierz, czy wyzwalacz odpowiada na zdarzenie utworzenia obiektu blob, zdarzenie usunięcia obiektu blob lub oba te zdarzenia. W określonej lokalizacji magazynu każde zdarzenie wyzwala potoki usługi Data Factory i Azure Synapse Analytics skojarzone z wyzwalaczem.
Wybierz, czy wyzwalacz ma ignorować blob z zerową liczbą bajtów.
Po skonfigurowaniu wyzwalacza wybierz pozycję Dalej: podgląd danych. Na tym ekranie przedstawiono istniejące obiekty blob zgodne z konfiguracją wyzwalacza zdarzeń przechowywania. Upewnij się, że masz określone filtry. Konfigurowanie filtrów, które są zbyt szerokie, może odpowiadać dużej liczbie plików, które zostały utworzone lub usunięte i może znacząco wpłynąć na koszt. Po zweryfikowaniu warunków filtrowania wybierz pozycję Zakończ.
Aby dołączyć potok do tego wyzwalacza, przejdź do kanwy potoku i wybierz Wyzwalacz>Nowy/Edytuj. Po wyświetleniu okienka bocznego wybierz listę rozwijaną Wybierz wyzwalacz i wybierz utworzony wyzwalacz. Wybierz pozycję Dalej: podgląd danych, aby potwierdzić, że konfiguracja jest poprawna. Następnie wybierz przycisk Dalej , aby sprawdzić, czy podgląd danych jest poprawny.
Jeśli potok ma parametry, możesz je określić w okienku parametrów uruchamiania wyzwalacza. Wyzwalacz zdarzenia magazynowego przechwytuje ścieżkę folderu i nazwę pliku bloba we właściwościach
@triggerBody().folderPathi@triggerBody().fileName. Aby użyć wartości tych właściwości w potoku, należy przypisać właściwości do parametrów potoku. Po zamapowaniu właściwości na parametry, w całym potoku można uzyskać dostęp do wartości przechwyconych przez wyzwalacz za pomocą wyrażenia@pipeline().parameters.parameterName. Aby uzyskać szczegółowe wyjaśnienie, zobacz Reference trigger metadata in pipelines.
W poprzednim przykładzie wyzwalacz jest skonfigurowany do uruchamiania, gdy ścieżka obiektu blob kończąca się na .csv zostanie utworzona w folderze event-testing w kontenerze sample-data. Właściwości
folderPathifileNameodzwierciedlają lokalizację nowego obiektu blob. Na przykład po dodaniu MoviesDB.csv do ścieżki sample-data/event-testing@triggerBody().folderPathma wartośćsample-data/event-testingi@triggerBody().fileNamema wartośćmoviesDB.csv. Te wartości są mapowane w przykładzie na parametrysourceFolderisourceFilepotoku, które mogą być używane w całym jego przebiegu odpowiednio jako@pipeline().parameters.sourceFolderi@pipeline().parameters.sourceFile.Po zakończeniu wybierz pozycję Zakończ.
Schemat systemu JSON
Poniższa tabela zawiera omówienie elementów schematu związanych z wyzwalaczami zdarzeń związanych z magazynowaniem.
| Element JSON | opis | Typ | Dozwolone wartości | Wymagane |
|---|---|---|---|---|
| zakres | Identyfikator zasobu Azure Resource Manager tego konta magazynu. | Sznurek | Identyfikator Azure Resource Manager | Tak. |
| wydarzenia | Typ zdarzeń, które powodują wyzwolenie tego wyzwalacza. | Tablica |
Microsoft.Storage.BlobCreated, Microsoft.Storage.BlobDeleted |
Tak, dowolna kombinacja tych wartości. |
blobPathBeginsWith |
Ścieżka obiektu blob musi zaczynać się od wzorca, który został podany, aby wyzwalacz mógł się uruchomić. Na przykład wyzwalacz uruchamia się tylko dla obiektów blob znajdujących się w folderze /records/blobs/december/ w kontenerze december. |
Sznurek | Podaj wartość co najmniej jednej z następujących właściwości: blobPathBeginsWith lub blobPathEndsWith. |
|
blobPathEndsWith |
Ścieżka obiektu blob musi kończyć się zadanym wzorcem, aby wyzwalacz się uruchomił. Na przykład december/boxes.csv uruchamia wyzwalacz tylko dla obiektów blob nazwanych boxes w folderze december. |
Sznurek | Podaj wartość co najmniej jednej z następujących właściwości: blobPathBeginsWith lub blobPathEndsWith. |
|
ignoreEmptyBlobs |
Określa, czy obiekty blob o zerowej długości uruchamiają potok. Domyślnie jest to ustawiona wartość true. |
logiczny | prawda lub fałsz | Nr. |
Przykłady wyzwalaczy zdarzeń przechowywania
Ta sekcja zawiera przykłady ustawień wyzwalacza zdarzeń pamięci.
Ważne
Musisz uwzględnić segment ścieżki /blobs/, jak pokazano w poniższych przykładach, za każdym razem, gdy określasz kontener i folder, kontener i plik lub kontener, plik i folder. W przypadku blobPathBeginsWith interfejs użytkownika automatycznie dodaje /blobs/ między nazwą folderu a nazwą kontenera w pliku JSON wyzwalacza.
| Własność | Przykład | opis |
|---|---|---|
Blob path begins with |
/containername/ |
Odbiera zdarzenia dla dowolnego obiektu blob w kontenerze. |
Blob path begins with |
/containername/blobs/foldername/ |
Odbiera zdarzenia dla obiektów blob w kontenerze containername oraz folderze foldername. |
Blob path begins with |
/containername/blobs/foldername/subfoldername/ |
Możesz również odwołać się do podfolderu. |
Blob path begins with |
/containername/blobs/foldername/file.txt |
Odbiera zdarzenia dla bloba o nazwie file.txt w folderze foldername w kontenerze containername. |
Blob path ends with |
file.txt |
Odbiera zdarzenia dla obiektu blob o nazwie file.txt w dowolnej ścieżce. |
Blob path ends with |
/containername/blobs/file.txt |
Odbiera zdarzenia dla obiektu blob o nazwie file.txt w kontenerze containername. |
Blob path ends with |
foldername/file.txt |
Odbiera zdarzenia dla obiektu blob o nazwie file.txt w folderze foldername w dowolnym kontenerze. |
Kontrola dostępu oparta na rolach
Usługa Data Factory i potoki Azure Synapse Analytics używają kontroli dostępu opartej na rolach Azure (Azure RBAC), aby zapewnić, że nieautoryzowany dostęp do nasłuchiwania, subskrybowania aktualizacji oraz wyzwalania potoków powiązanych ze zdarzeniami blob jest ściśle zabroniony.
- Aby pomyślnie utworzyć nowy wyzwalacz zdarzenia przechowywania lub zaktualizować istniejący, konto Azure używane do logowania się do usługi musi mieć odpowiedni dostęp do odpowiedniego konta przechowywania. W przeciwnym razie operacja kończy się niepowodzeniem z komunikatem "Odmowa dostępu".
- Usługa Data Factory i Azure Synapse Analytics nie potrzebują specjalnych uprawnień do wystąpienia usługi Event Grid i nie musisz przypisywać specjalnych uprawnień RBAC do konta usługi Data Factory lub Azure Synapse Analytics dla operacji.
Dowolne z następujących ustawień RBAC działa dla wyzwalaczy zdarzeń w magazynie:
- Rola właściciela konta magazynu
- Rola współautora na koncie magazynowym
-
Microsoft.EventGrid/EventSubscriptions/Writeuprawnienia do konta magazynowego/subscriptions/####/resourceGroups/####/providers/Microsoft.Storage/storageAccounts/storageAccountName
Szczególnie:
- Podczas tworzenia w Data Factory (na przykład w środowisku deweloperskim) zalogowane konto Azure musi mieć wymienione wcześniej uprawnienie.
- Podczas publikowania za pośrednictwem ciągłej integracji i ciągłego dostarczania, konto użyte do opublikowania szablonu Azure Resource Manager w środowisku testowym lub produkcyjnym musi mieć poniższe uprawnienie.
Aby zrozumieć, w jaki sposób usługa dostarcza te dwie obietnice, zróbmy krok wstecz i przyjrzyjmy się za kulisami. Poniżej przedstawiono wysokopoziomowe przepływy pracy dla integracji między usługą Data Factory, usługą Azure Synapse Analytics, usługą przechowywania i usługą Event Grid.
Utwórz nowy wyzwalacz zdarzeń dla przechowywania danych
Ten ogólny schemat przepływu pracy opisuje sposób, w jaki usługa Data Factory współdziała z usługą Event Grid, aby utworzyć wyzwalacz zdarzenia przechowywania. Przepływ danych jest taki sam w Azure Synapse Analytics, a potoki Azure Synapse Analytics pełnią rolę fabryki danych na poniższym diagramie.
Dwa zauważalne spostrzeżenia w przepływach pracy:
- Usługa Data Factory i Azure Synapse Analytics nie nawiązują bezpośredniego kontaktu z kontem magazynu. Żądanie utworzenia subskrypcji jest zamiast tego przekazywane i przetwarzane przez usługę Event Grid. Usługa nie musi mieć uprawnień dostępu do konta pamięci masowej w tym kroku.
- Kontrola dostępu i sprawdzanie uprawnień są wykonywane w ramach usługi. Zanim usługa wyśle żądanie zasubskrybowania zdarzenia związanego z przechowywaniem, sprawdza uprawnienia użytkownika. W szczególności sprawdza, czy konto Azure, które zalogowało się i próbuje utworzyć wyzwalacz zdarzenia dla magazynu, ma odpowiedni dostęp do odpowiedniego konta magazynu. Jeśli sprawdzanie uprawnień zakończy się niepowodzeniem, tworzenie wyzwalacza również zakończy się niepowodzeniem.
Uruchamianie potoku wyzwalania zdarzeń przechowywania
W tym ogólnym przepływie pracy opisano sposób uruchamiania potoków wyzwalacza zdarzeń magazynu za pośrednictwem usługi Event Grid. W przypadku Azure Synapse Analytics przepływ danych jest taki sam, a pipeline'y Azure Synapse Analytics pełnią rolę usługi Data Factory w przedstawionym diagramie.
Trzy zauważalne objaśnienia w przepływie pracy są związane z potokami wyzwalania zdarzeń w usłudze:
Usługa Event Grid używa modelu wypychania, który przekazuje komunikat tak szybko, jak to możliwe, gdy magazyn umieszcza komunikat w systemie. Takie podejście różni się od systemu przesyłania wiadomości, takiego jak Kafka, w którym jest używany system pull.
Wyzwalacz zdarzenia działa jako aktywny nasłuchiwacz komunikatu przychodzącego i prawidłowo uruchamia powiązaną ścieżkę przetwarzania.
Wyzwalacz zdarzenia dotyczący magazynu sam w sobie nie nawiązuje bezpośredniego kontaktu z kontem magazynu.
- Jeśli masz aktywność Copy lub inną aktywność w ramach potoku w celu przetwarzania danych na koncie przechowywania, usługa nawiązuje bezpośredni kontakt z kontem przechowywania, używając poświadczeń przechowywanych w połączonej usłudze. Upewnij się, że połączona usługa jest odpowiednio skonfigurowana.
- Jeśli nie odwołujesz się do konta przechowywania w potoku, nie musisz przyznawać usłudze dostępu do konta przechowywania.
Powiązana zawartość
- Aby uzyskać więcej informacji na temat wyzwalaczy, zobacz Uruchamianie potoku i wyzwalacze.
- Aby odwołać się do metadanych wyzwalacza w potoku, zobacz sekcję Odwołania do metadanych wyzwalacza w uruchomieniach potoku.