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
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. Den inbyggda Data Factory-integreringen 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 därefter.
Anteckning
Integrationen 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 Contributor .
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. Annars visas 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 i parameteriseringen saknas i nyttolasten trigger run
för den anpassade händelsen misslyckas. Du får ett felmeddelande om att uttrycket inte kan utvärderas eftersom egenskapen keyName
inte finns. I det här fallet utlöses ingetpipeline 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 Azure Event Grid-portalens självstudier och CLI-självstudier.
Anteckning
Arbetsflödet skiljer sig från utlösaren 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
Gå till Azure Data Factory och logga in.
Växla till fliken Redigera . Leta efter pennikonen.
Välj Utlösare på menyn och välj sedan Ny/Redigera.
På sidan Lägg till utlösare väljer du Välj utlösare och sedan +Nytt.
Välj Anpassade händelser för Typ.
Välj ditt anpassade ämne i listrutan Azure-prenumeration eller ange händelseämnesomfånget manuellt.
Anteckning
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. Data Factory-tjänstprincipen kräver inte särskild behörighet till Event Grid. Mer information om åtkomstkontroll finns i avsnittet Rollbaserad åtkomstkontroll .
Ämnet börjar med och Ämne slutar med egenskaper så att du kan filtrera efter utlösarhändelser. Båda egenskaperna är valfria.
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 allacopycompleted
händelser ellercopysucceeded
händelser som har ett ämne som börjar med fabriker.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:
När du har angett parametrarna väljer du OK.
Avancerad filtrering
Anpassad händelseutlösare stöder avancerade filtreringsfunktioner som liknar 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 Avdelning är lika med Ekonomi. Du kan också ange komplex logik, till exempel datumfält i listan [1, 2, 3, 4, 5], månadsfält som inte finns i listan [11, 12], taggfält innehåller något av ['Räkenskapsår 2021', 'FiscalYear2021', 'FY2021'].
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
- -tangenterna kan inte ha
.
(punkt) tecken i sig,john.doe@contoso.com
till 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 | Obligatorisk |
---|---|---|---|---|
scope |
Resurs-ID för Azure Resource Manager i Event Grid-ämnet. | Sträng | 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. |
Sträng | Inga | |
subjectEndsWith |
Fältet subject måste sluta med det angivna mönstret för att utlösaren ska utlösas. |
Sträng | Inga | |
advancedFilters |
Lista över JSON-blobar som var och en anger ett filtervillkor. Varje blob anger key , operatorType och values . |
Lista över JSON-blobar | Inga |
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 felet Åtkomst nekad .
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 Azure-kontot 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.
Nästa steg
- Få detaljerad information om utlösarkörning.
- Lär dig hur du refererar till utlösarmetadata i pipelinekörningar.