Dela via


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 ä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.

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 en Data Factory-resursprovider. Annars får du ett meddelande om att "det gick inte 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 frihandsfigur, 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 misslyckas trigger run . Du får ett meddelande som anger att uttrycket inte kan utvärderas eftersom egenskapen keyName inte finns. I det här fallet utlöses inget pipeline 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 Event Grid och skapa ämnet själv. Mer information om hur du skapar det anpassade ämnet finns i självstudier för Event Grid-portalen och Azure CLI-självstudier.

Kommentar

Arbetsflödet skiljer sig från en utlösare för lagringshändelser. 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 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 + Ny.

  5. Under Typ väljer du Anpassade händelser.

    Skärmbild som visar hur du skapar en ny anpassad händelseutlösare i Data Factory-användargränssnittet.

  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 i Azure (Azure RBAC). Ingen annan 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. Med Subject begins with egenskaperna och Subject ends with kan du 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 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.

    Skärmbild som visar sidan Redigera utlösare för att förklara händelsetyper och ämnesfiltrering i Data Factory-användargränssnittet.

  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:

    Skärmbild som visar inställningar för pipelineparametrar.

    Skärmbild som visar parametersidan för att referera till datanyttolasten i en anpassad händelse.

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

Avancerad filtrering

Anpassade händelseutlösare stöder avancerade filtreringsfunktioner, ungefär som avancerad filtrering i Event Grid. Dessa villkorsstyrda filter gör att pipelines kan utlösas baserat på värdena för händelsenyttolasten. Du kan till exempel ha ett fält i händelsenyttolasten med namnet Avdelning, och pipelinen bör bara utlösas om avdelningen är lika med Ekonomi. Du kan också ange komplex logik, till exempel datumfältet i listan [1, 2, 3, 4, 5], månadsfältet inte i listan [11, 12], och om taggfältet innehåller [räkenskapsår 2021, FiscalYear2021 eller FY2021].

Skärmbild som visar hur du ställer in avancerade filter för en kundhändelseutlösare.

Från och med idag stöder anpassade 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 + Ny för att lägga till nya filtervillkor.

Anpassade händelseutlösare följer också samma begränsningar som Event Grid, till exempel:

  • 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 in och not in operatorer.
  • Nycklar kan inte ha . (punkt)-tecknet i sig, 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 versionen av event grid-API:et (allmän tillgänglighet). 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. Strängmatris 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-blobar Nej.

Rollbaserad åtkomstkontroll

Data Factory använder 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 meddelandet "Åtkomst nekad".

Data Factory kräver inte särskild behörighet till din instans av 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 skapar i datafabriken (till exempel i utvecklingsmiljön) måste det Azure-konto som loggas in ha föregående behörighet.
  • När du publicerar genom kontinuerlig integrering och kontinuerlig leverans måste det konto som används för att publicera Azure Resource Manager-mallen i test- eller produktionsfabriken ha föregående behörighet.