Tworzenie niestandardowego wyzwalacza zdarzeń w celu uruchomienia potoku w usłudze Azure Data Factory

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Architektura sterowana zdarzeniami (EDA) to typowy wzorzec integracji danych, który obejmuje produkcję, wykrywanie, zużycie i reakcję na zdarzenia. Scenariusze integracji danych często wymagają, aby klienci usługi Azure Data Factory wyzwalali potoki po wystąpieniu określonych zdarzeń. Integracja natywna usługi Data Factory z usługą Azure Event Grid obejmuje teraz tematy niestandardowe. Zdarzenia są wysyłane do tematu usługi Event Grid. Usługa Data Factory subskrybuje temat, nasłuchuje, a następnie odpowiednio wyzwala potoki.

Uwaga

Integracja opisana w tym artykule zależy od usługi 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 mieć możliwość wykonania Microsoft.EventGrid/eventSubscriptions/ akcji. Ta akcja jest częścią wbudowanej roli Współautor zdarzenia EventGrid.

Ważne

Jeśli używasz tej funkcji w usłudze Azure Synapse Analytics, upewnij się, że subskrypcja jest również zarejestrowana u dostawcy zasobów usługi Data Factory lub w przeciwnym razie zostanie wyświetlony komunikat o błędzie informujący, że tworzenie subskrypcji zdarzeń nie powiodło się.

Jeśli połączysz parametry potoku i niestandardowy wyzwalacz zdarzenia, możesz przeanalizować i odwołać się do niestandardowych data ładunków w uruchomieniach potoku. data Ponieważ pole w niestandardowym ładunku zdarzeń jest dowolną strukturą klucz-wartość w formacie JSON, możesz kontrolować uruchomienia potoków sterowanych zdarzeniami.

Ważne

Jeśli w ładunku zdarzenia niestandardowego brakuje klucza, do którego odwołuje się parametryzacja, trigger run zakończy się niepowodzeniem. Zostanie wyświetlony błąd wskazujący, że nie można ocenić wyrażenia, ponieważ właściwość keyName nie istnieje. W takim przypadku zdarzenie niepipeline run zostanie wyzwolone.

Konfigurowanie tematu niestandardowego w usłudze Event Grid

Aby użyć niestandardowego wyzwalacza zdarzeń w usłudze Data Factory, należy najpierw skonfigurować temat niestandardowy w usłudze Event Grid.

Przejdź do usługi Azure Event Grid i samodzielnie utwórz temat. Aby uzyskać więcej informacji na temat tworzenia tematu niestandardowego, zobacz Samouczki dotyczące portalu usługi Azure Event Grid i samouczki interfejsu wiersza polecenia.

Uwaga

Przepływ pracy różni się od wyzwalacza zdarzeń magazynu. W tym miejscu usługa Data Factory nie konfiguruje tematu.

Usługa Data Factory oczekuje, że zdarzenia będą zgodne ze schematem zdarzeń usługi Event Grid. Upewnij się, że ładunki zdarzeń mają następujące pola:

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

Tworzenie niestandardowego wyzwalacza zdarzeń za pomocą usługi Data Factory

  1. Przejdź do usługi Azure Data Factory i zaloguj się.

  2. Przejdź do karty Edycja . Poszukaj ikony ołówka.

  3. Wybierz pozycję Wyzwalacz w menu, a następnie wybierz pozycję Nowy/Edytuj.

  4. Na stronie Dodawanie wyzwalaczy wybierz pozycję Wybierz wyzwalacz, a następnie wybierz pozycję +Nowy.

  5. Wybierz pozycję Zdarzenia niestandardowe dla pozycji Typ.

    Screenshot of Author page to create a new custom event trigger in Data Factory UI.

  6. Wybierz temat niestandardowy z listy rozwijanej Subskrypcja platformy Azure lub ręcznie wprowadź zakres tematu zdarzenia.

    Uwaga

    Aby utworzyć lub zmodyfikować niestandardowy wyzwalacz zdarzeń w usłudze Data Factory, musisz użyć konta platformy Azure z odpowiednią kontrolą dostępu opartą na rolach (Azure RBAC). Nie jest wymagane żadne dodatkowe uprawnienie. Jednostka usługi Data Factory nie wymaga specjalnych uprawnień do usługi Event Grid. Aby uzyskać więcej informacji na temat kontroli dostępu, zobacz sekcję Kontrola dostępu oparta na rolach.

  7. Temat zaczyna się od i Temat kończy się właściwościami , które umożliwiają filtrowanie pod kątem zdarzeń wyzwalacza. Obie właściwości są opcjonalne.

  8. Użyj opcji + Nowy , aby dodać typy zdarzeń do filtrowania. Lista wyzwalaczy zdarzeń niestandardowych używa relacji OR. Gdy zdarzenie niestandardowe z właściwością zgodną eventType z jedną na liście, zostanie wyzwolone uruchomienie potoku. Typ zdarzenia jest niewrażliwy na wielkość liter. Na przykład na poniższym zrzucie ekranu wyzwalacz pasuje do wszystkich copycompleted lub copysucceeded zdarzeń, które mają temat rozpoczynający się od fabryk.

    Screenshot of Edit Trigger page to explain Event Types and Subject filtering in Data Factory UI.

  9. Niestandardowy wyzwalacz zdarzenia może przeanalizować i wysłać niestandardowy data ładunek do potoku. Utworzysz parametry potoku, a następnie wypełnij wartości na stronie Parametry . Użyj formatu @triggerBody().event.data._keyName_ , aby przeanalizować ładunek danych i przekazać wartości do parametrów potoku.

    Aby uzyskać szczegółowe wyjaśnienie, zobacz następujące artykuły:

    Screenshot of pipeline parameters settings.

    Screenshot of the parameters page to reference data payload in custom event.

  10. Po wprowadzeniu parametrów wybierz przycisk OK.

Filtrowanie zaawansowane

Niestandardowy wyzwalacz zdarzeń obsługuje zaawansowane funkcje filtrowania, podobne do zaawansowanego filtrowania usługi Event Grid. Te filtry warunkowe umożliwiają wyzwalanie potoków na podstawie wartości ładunku zdarzenia. Na przykład może istnieć pole w ładunku zdarzenia o nazwie Dział i potok powinny być wyzwalane tylko wtedy, gdy dział jest równy finansom. Można również określić złożoną logikę, taką jak pole daty na liście [1, 2, 3, 4, 5], pole miesiąca, które nie znajduje się na liście [11, 12], pole tagu zawiera dowolne pole ["Rok obrachunkowy 2021", "FiscalYear2021", "FY2021".

Screenshot of setting advanced filters for customer event trigger

Obecnie niestandardowy wyzwalacz zdarzeń obsługuje podzestawzaawansowanych operatorów filtrowania w usłudze Event Grid. Obsługiwane są następujące warunki filtrowania:

  • NumberIn
  • NumberNotIn
  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEquals
  • NumberGreaterThanOrEquals
  • BoolEquals
  • CiągContains
  • StringBeginsWith
  • StringEndsWith
  • CiągIn
  • StringNotIn

Wybierz pozycję +Nowy , aby dodać nowe warunki filtrowania.

Ponadto wyzwalacze zdarzeń niestandardowych przestrzegają tych samych ograniczeń co usługa Event Grid, w tym:

  • 5 zaawansowanych filtrów i 25 wartości filtrów we wszystkich filtrach na wyzwalacz zdarzenia niestandardowego
  • 512 znaków na wartość ciągu
  • 5 wartości dla operatorów in i nie w operatorach
  • klucze nie mogą mieć . znaków (kropka) w nich, na przykład john.doe@contoso.com. Obecnie w kluczach nie ma obsługi znaków ucieczki.
  • Ten sam klucz może być używany w więcej niż jednym filtrze.

Usługa Data Factory korzysta z najnowszej wersji ogólnie dostępnej interfejsu API usługi Event Grid. Gdy nowe wersje interfejsu API staną się etapem ga, usługa Data Factory rozszerzy obsługę bardziej zaawansowanych operatorów filtrowania.

Schemat systemu JSON

Poniższa tabela zawiera omówienie elementów schematu związanych z niestandardowymi wyzwalaczami zdarzeń:

Element JSON opis Type Dozwolone wartości Wymagania
scope Identyfikator zasobu usługi Azure Resource Manager tematu usługi Event Grid. String Identyfikator usługi Azure Resource Manager Tak
events Typ zdarzeń, które powodują wyzwolenie tego wyzwalacza. Tablica ciągów Tak, oczekiwana jest co najmniej jedna wartość.
subjectBeginsWith Pole subject musi zaczynać się od podanego wzorca wyzwalacza do uruchomienia. Na przykład fabryki uruchamiają wyzwalacz tylko dla tematów zdarzeń rozpoczynających się od fabryk. String Nie
subjectEndsWith Pole subject musi kończyć się podanym wzorcem wyzwalacza do uruchomienia. String Nie
advancedFilters Lista obiektów blob JSON, z których każdy określa warunek filtru. Każdy obiekt blob określa key, operatorTypei values. Lista obiektów blob JSON Nie.

Kontrola dostępu oparta na rolach

Usługa Azure Data Factory używa kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby uniemożliwić nieautoryzowany dostęp. Aby prawidłowo działać, usługa Data Factory wymaga dostępu do:

  • Nasłuchiwanie zdarzeń.
  • Subskrybowanie aktualizacji ze zdarzeń.
  • Wyzwalanie potoków połączonych ze zdarzeniami niestandardowymi.

Aby pomyślnie utworzyć lub zaktualizować niestandardowy wyzwalacz zdarzeń, musisz zalogować się do usługi Data Factory przy użyciu konta platformy Azure, które ma odpowiedni dostęp. W przeciwnym razie operacja zakończy się niepowodzeniem z powodu błędu Odmowy dostępu.

Usługa Data Factory nie wymaga specjalnych uprawnień do usługi Event Grid. Nie trzeba również przypisywać specjalnej roli RBAC platformy Azure do jednostki usługi Data Factory dla operacji.

W szczególności potrzebujesz Microsoft.EventGrid/EventSubscriptions/Write uprawnień w systemie /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics.

  • Podczas tworzenia w fabryce danych (na przykład w środowisku deweloperskim) zalogowane konto platformy Azure musi mieć powyższe uprawnienie
  • Podczas publikowania za pośrednictwem ciągłej integracji/ciągłego wdrażania konto używane do publikowania szablonu usługi ARM w fabryce testowej lub produkcyjnej musi mieć powyższe uprawnienie.