Skapa en anpassad händelseutlösare för att köra en pipeline i Azure Data Factory

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Händelsedriven arkitektur (EDA) är ett vanligt dataintegreringsmönster som omfattar produktion, identifiering, förbrukning och reaktion på händelser. Dataintegreringsscenarier kräver ofta att Azure Data Factory-kunder utlöser pipelines när vissa händelser inträffar. Data Factory-intern integrering med Azure Event Grid omfattar nu anpassade ämnen. Du skickar händelser till ett event grid-ämne. Data Factory prenumererar på ämnet, lyssnar och utlöser sedan pipelines i enlighet med detta.

Kommentar

Integreringen som beskrivs i den här artikeln beror på Azure Event Grid. Kontrollera att din prenumeration är registrerad hos Event Grid-resursprovidern. Mer information finns i Resursproviders och typer. Du måste kunna utföra åtgärden Microsoft.EventGrid/eventSubscriptions/ . Den här åtgärden är en del av den inbyggda rollen EventGrid EventSubscription-deltagare .

Viktigt!

Om du använder den här funktionen i Azure Synapse Analytics kontrollerar du att din prenumeration också är registrerad hos Data Factory-resursprovidern, eller så får du ett felmeddelande om att det inte gick att skapa en händelseprenumeration.

Om du kombinerar pipelineparametrar och en anpassad händelseutlösare kan du parsa och referera till anpassade data nyttolaster i pipelinekörningar. Eftersom fältet data i en anpassad händelsenyttolast är en fri form, en JSON-nyckelvärdesstruktur, kan du styra händelsedrivna pipelinekörningar.

Viktigt!

Om en nyckel som refereras till i parameteriseringen saknas i den anpassade händelsenyttolasten trigger run misslyckas. Du får ett fel som anger att uttrycket inte kan utvärderas eftersom egenskapen keyName inte finns. I det här fallet utlöses nejpipeline run av händelsen.

Konfigurera ett anpassat ämne i Event Grid

Om du vill använda den anpassade händelseutlösaren i Data Factory måste du först konfigurera ett anpassat ämne i Event Grid.

Gå till Azure Event Grid och skapa ämnet själv. Mer information om hur du skapar det anpassade ämnet finns i självstudier och CLI-självstudier i Azure Event Grid-portalen.

Kommentar

Arbetsflödet skiljer sig från Utlösare för lagringshändelse. Här konfigurerar Data Factory inte ämnet åt dig.

Data Factory förväntar sig att händelser följer Event Grid-händelseschemat. Kontrollera att händelsenyttolaster har följande fält:

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

Använda Data Factory för att skapa en anpassad händelseutlösare

  1. Gå till Azure Data Factory och logga in.

  2. Växla till fliken Redigera . Leta efter pennikonen.

  3. Välj Utlösare på menyn och välj sedan Ny/Redigera.

  4. På sidan Lägg till utlösare väljer du Välj utlösare och sedan +Nytt.

  5. Välj Anpassade händelser för Typ.

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

  6. Välj ditt anpassade ämne i listrutan Azure-prenumeration eller ange händelseämnesomfånget manuellt.

    Kommentar

    Om du vill skapa eller ändra en anpassad händelseutlösare i Data Factory måste du använda ett Azure-konto med lämplig rollbaserad åtkomstkontroll (Azure RBAC). Ingen ytterligare behörighet krävs. Tjänstens huvudnamn för Data Factory kräver inte särskild behörighet till Event Grid. Mer information om åtkomstkontroll finns i avsnittet Rollbaserad åtkomstkontroll .

  7. Ämnet börjar med och Ämne slutar med egenskaper så att du kan filtrera efter utlösarhändelser. Båda egenskaperna är valfria.

  8. Använd + Ny för att lägga till händelsetyper att filtrera på. Listan över anpassade händelseutlösare använder en OR-relation. När en anpassad händelse med en eventType egenskap som matchar en i listan utlöses en pipelinekörning. Händelsetypen är skiftlägesokänslig. I följande skärmbild matchar utlösaren till exempel alla copycompleted eller copysucceeded händelser som har ett ämne som börjar med fabriker.

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

  9. En anpassad händelseutlösare kan parsa och skicka en anpassad data nyttolast till din pipeline. Du skapar pipelineparametrarna och fyller sedan i värdena på sidan Parametrar . Använd formatet @triggerBody().event.data._keyName_ för att parsa datanyttolasten och skicka värden till pipelineparametrarna.

    En detaljerad förklaring finns i följande artiklar:

    Screenshot of pipeline parameters settings.

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

  10. När du har angett parametrarna väljer du OK.

Avancerad filtrering

Anpassad händelseutlösare har stöd för avancerade filtreringsfunktioner, ungefär som avancerad filtrering i Event Grid. Dessa villkorsstyrda filter tillåter att pipelines utlöses baserat på värdena för händelsenyttolasten. Du kan till exempel ha ett fält i händelsenyttolasten med namnet Avdelning och pipeline bör bara utlösas om avdelningen är lika med Ekonomi. Du kan också ange komplex logik, till exempel datumfält i listan [1, 2, 3, 4, 5], månadsfältsom inte finns i listan [11, 12], taggfält innehåller något av ['Räkenskapsår 2021', 'FiscalYear2021', 'FY2021'].

Screenshot of setting advanced filters for customer event trigger

Från och med idag stöder anpassad händelseutlösare en delmängd av avancerade filtreringsoperatorer i Event Grid. Följande filtervillkor stöds:

  • NumberIn
  • NumberNotIn
  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEquals
  • NumberGreaterThanOrEquals
  • BoolEquals
  • StringContains
  • StringBeginsWith
  • StringEndsWith
  • StringIn
  • StringNotIn

Välj +Nytt för att lägga till nya filtervillkor.

Dessutom följer anpassade händelseutlösare samma begränsningar som Event Grid, inklusive:

  • 5 avancerade filter och 25 filtervärden för alla filter per anpassad händelseutlösare
  • 512 tecken per strängvärde
  • 5 värden för i och inte i operatorer
  • nycklar kan inte ha . (punkt) tecken i dem, john.doe@contoso.comtill exempel . För närvarande finns det inget stöd för escape-tecken i nycklar.
  • Samma nyckel kan användas i mer än ett filter.

Data Factory förlitar sig på den senaste GA-versionen av Event Grid API. När nya API-versioner kommer till GA-fasen utökar Data Factory sitt stöd för mer avancerade filtreringsoperatorer.

JSON-schema

Följande tabell innehåller en översikt över de schemaelement som är relaterade till anpassade händelseutlösare:

JSON-element beskrivning Typ Tillåtna värden Obligatoriskt
scope Resurs-ID:t för Azure Resource Manager för Event Grid-ämnet. String Azure Resource Manager-ID Ja
events Den typ av händelser som gör att utlösaren utlöses. Matris med strängar Ja, minst ett värde förväntas.
subjectBeginsWith Fältet subject måste börja med det angivna mönstret för att utlösaren ska utlösas. Till exempel utlöser fabriker bara utlösaren för händelseämnen som börjar med fabriker. String Nej
subjectEndsWith Fältet subject måste avslutas med det angivna mönstret för att utlösaren ska utlösas. String Nej
advancedFilters Lista över JSON-blobar som var och en anger ett filtervillkor. Varje blob anger key, operatorTypeoch values. Lista över JSON-blob Nej

Rollbaserad åtkomstkontroll

Azure Data Factory använder rollbaserad åtkomstkontroll i Azure (RBAC) för att förbjuda obehörig åtkomst. För att fungera korrekt kräver Data Factory åtkomst till:

  • Lyssna på händelser.
  • Prenumerera på uppdateringar från händelser.
  • Utlösa pipelines som är länkade till anpassade händelser.

Om du vill skapa eller uppdatera en anpassad händelseutlösare måste du logga in på Data Factory med ett Azure-konto som har lämplig åtkomst. Annars misslyckas åtgärden med ett felmeddelande om nekad åtkomst.

Data Factory kräver inte särskild behörighet till Event Grid. Du behöver inte heller tilldela särskild Azure RBAC-rollbehörighet till Data Factory-tjänstens huvudnamn för åtgärden.

Mer specifikt behöver Microsoft.EventGrid/EventSubscriptions/Write du behörighet för /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics.

  • När du redigerar i datafabriken (till exempel i utvecklingsmiljön) måste det Azure-konto som loggas in ha behörigheten ovan
  • När du publicerar via CI/CD måste det konto som används för att publicera ARM-mallen i test- eller produktionsfabriken ha behörigheten ovan.