Een aangepaste gebeurtenistrigger maken om een pijplijn uit te voeren in Azure Data Factory
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Gebeurtenisgestuurde architectuur (EDA) is een gemeenschappelijk patroon voor gegevensintegratie dat productie, detectie, verbruik en reactie op gebeurtenissen omvat. Voor scenario's voor gegevensintegratie moeten Azure Data Factory-klanten vaak pijplijnen activeren wanneer bepaalde gebeurtenissen plaatsvinden. Systeemeigen integratie van Data Factory met Azure Event Grid behandelt nu aangepaste onderwerpen. U verzendt gebeurtenissen naar een Event Grid-onderwerp. Data Factory abonneert zich op het onderwerp, luistert en activeert vervolgens pijplijnen dienovereenkomstig.
Notitie
De integratie die in dit artikel wordt beschreven, is afhankelijk van Azure Event Grid. Zorg ervoor dat uw abonnement is geregistreerd bij de Event Grid-resourceprovider. Zie Resourceproviders en -typen voor meer informatie. U moet de Microsoft.EventGrid/eventSubscriptions/
actie kunnen uitvoeren. Deze actie maakt deel uit van de ingebouwde rol EventGrid EventSubscription Contributor .
Belangrijk
Als u deze functie gebruikt in Azure Synapse Analytics, moet u ervoor zorgen dat uw abonnement ook is geregistreerd bij de Data Factory-resourceprovider, anders krijgt u een foutmelding waarin wordt aangegeven dat het maken van een gebeurtenisabonnement is mislukt.
Als u pijplijnparameters en een aangepaste gebeurtenistrigger combineert, kunt u aangepaste data
nettoladingen parseren en ernaar verwijzen in pijplijnuitvoeringen. Omdat het data
veld in een nettolading van een aangepaste gebeurtenis een vrije vorm is, kunt u JSON-sleutelwaardestructuur beheren, zodat u gebeurtenisgestuurde pijplijnuitvoeringen kunt beheren.
Belangrijk
Als een sleutel waarnaar wordt verwezen in parameterisatie ontbreekt in de nettolading van de aangepaste gebeurtenis, trigger run
mislukt dit. Er wordt een foutbericht weergegeven waarin wordt aangegeven dat de expressie niet kan worden geëvalueerd omdat de eigenschap keyName
niet bestaat. In dit geval wordt er geenpipeline run
geactiveerd door de gebeurtenis.
Een aangepast onderwerp instellen in Event Grid
Als u de trigger voor aangepaste gebeurtenissen in Data Factory wilt gebruiken, moet u eerst een aangepast onderwerp instellen in Event Grid.
Ga naar Azure Event Grid en maak het onderwerp zelf. Zie de zelfstudies en CLI-zelfstudies van de Azure Event Grid-portal voor meer informatie over het maken van het aangepaste onderwerp.
Notitie
De werkstroom verschilt van de trigger voor opslagevenementen. Hier stelt Data Factory het onderwerp niet voor u in.
Data Factory verwacht dat gebeurtenissen het Event Grid-gebeurtenisschema volgen. Zorg ervoor dat nettoladingen van gebeurtenissen de volgende velden hebben:
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Data Factory gebruiken om een aangepaste gebeurtenistrigger te maken
Ga naar Azure Data Factory en meld u aan.
Ga naar het tabblad Bewerken . Zoek naar het potloodpictogram.
Selecteer Trigger in het menu en selecteer Vervolgens Nieuw/Bewerken.
Selecteer op de pagina Triggers toevoegen de optie Trigger kiezen en selecteer vervolgens +Nieuw.
Selecteer Aangepaste gebeurtenissen voor type.
Selecteer uw aangepaste onderwerp in de vervolgkeuzelijst van het Azure-abonnement of voer het bereik van het gebeurtenisonderwerp handmatig in.
Notitie
Als u een aangepaste gebeurtenistrigger in Data Factory wilt maken of wijzigen, moet u een Azure-account gebruiken met het juiste op rollen gebaseerd toegangsbeheer (Azure RBAC). Er is geen extra machtiging vereist. De Data Factory-service-principal vereist geen speciale machtigingen voor uw Event Grid. Zie de sectie Op rollen gebaseerd toegangsbeheer voor meer informatie over toegangsbeheer .
Het onderwerp begint met en het onderwerp eindigt met eigenschappen, zodat u kunt filteren op trigger-gebeurtenissen. Beide eigenschappen zijn optioneel.
Gebruik + Nieuw om gebeurtenistypen toe te voegen waarop u wilt filteren. De lijst met aangepaste gebeurtenistriggers maakt gebruik van een OR-relatie. Wanneer een aangepaste gebeurtenis met een eigenschap overeenkomt met een
eventType
gebeurtenis in de lijst, wordt een pijplijnuitvoering geactiveerd. Het gebeurtenistype is niet hoofdlettergevoelig. In de volgende schermopname komt de trigger bijvoorbeeld overeen met allecopycompleted
gebeurtenissen ofcopysucceeded
gebeurtenissen met een onderwerp dat begint met factory's.Een aangepaste gebeurtenistrigger kan een aangepaste
data
nettolading parseren en verzenden naar uw pijplijn. U maakt de pijplijnparameters en vult vervolgens de waarden op de pagina Parameters in. Gebruik de indeling@triggerBody().event.data._keyName_
om de nettolading van de gegevens te parseren en waarden door te geven aan de pijplijnparameters.Zie de volgende artikelen voor een gedetailleerde uitleg:
Nadat u de parameters hebt ingevoerd, selecteert u OK.
Geavanceerd filteren
Aangepaste gebeurtenistrigger biedt ondersteuning voor geavanceerde filtermogelijkheden, vergelijkbaar met Advanced Filtering van Event Grid. Met deze voorwaardelijke filters kunnen pijplijnen worden geactiveerd op basis van de waarden van de nettolading van de gebeurtenis. U kunt bijvoorbeeld een veld hebben in de nettolading van de gebeurtenis, de naam Afdeling en de pijplijn, mag alleen worden geactiveerd als Afdeling gelijk is aan Financiën. U kunt ook complexe logica opgeven, zoals datumveld in lijst [1, 2, 3, 4, 5], maandveld niet in lijst [11, 12], tagveld bevat een van de ['Fiscal Year 2021', 'FiscalYear2021', 'FY2021'].
Vanaf vandaag ondersteunt aangepaste gebeurtenistrigger een subset van geavanceerde filteroperators in Event Grid. De volgende filtervoorwaarden worden ondersteund:
- NumberIn
- NumberNotIn
- NumberLessThan
- NumberGreaterThan
- NumberLessThanOrEquals
- NumberGreaterThanOrEquals
- BoolEquals
- StringContains
- StringBeginsWith
- StringEndsWith
- StringIn
- StringNotIn
Selecteer +Nieuw om nieuwe filtervoorwaarden toe te voegen.
Daarnaast voldoen aangepaste gebeurtenistriggers aan dezelfde beperkingen als Event Grid, waaronder:
- 5 geavanceerde filters en 25 filterwaarden voor alle filters per aangepaste gebeurtenistrigger
- 512 tekens per tekenreekswaarde
- 5 waarden voor in en niet in operators
- toetsen mogen bijvoorbeeld geen (punt) teken
john.doe@contoso.com
bevatten.
. Op dit moment is er geen ondersteuning voor escape-tekens in sleutels. - Dezelfde sleutel kan in meer dan één filter worden gebruikt.
Data Factory is afhankelijk van de nieuwste GA-versie van de Event Grid-API. Naarmate nieuwe API-versies naar de algemene beschikbaarheidsfase gaan, wordt de ondersteuning voor geavanceerdere filteroperators uitgebreid.
JSON-schema
De volgende tabel bevat een overzicht van de schema-elementen die betrekking hebben op aangepaste gebeurtenistriggers:
JSON-element | Beschrijving | Type | Toegestane waarden | Vereist |
---|---|---|---|---|
scope |
De Resource-id van Azure Resource Manager van het Event Grid-onderwerp. | String | Azure Resource Manager-id | Ja |
events |
Het type gebeurtenissen dat ervoor zorgt dat deze trigger wordt geactiveerd. | Matrix met tekenreeksen | Ja, er wordt ten minste één waarde verwacht. | |
subjectBeginsWith |
Het subject veld moet beginnen met het opgegeven patroon om de trigger te activeren. Fabrieken activeren bijvoorbeeld alleen de trigger voor gebeurtenisonderwerpers die beginnen met factory's. |
String | Nee | |
subjectEndsWith |
Het subject veld moet eindigen met het opgegeven patroon om de trigger te activeren. |
String | Nee | |
advancedFilters |
Lijst met JSON-blobs, die elk een filtervoorwaarde opgeven. Elke blob geeft key , operatorType en values . |
Lijst met JSON-blob | Nee |
Op rollen gebaseerd toegangsbeheer
Azure Data Factory maakt gebruik van op rollen gebaseerd toegangsbeheer van Azure (RBAC) om onbevoegde toegang te verbieden. Data Factory heeft toegang nodig tot:
- Luister naar gebeurtenissen.
- Abonneren op updates van gebeurtenissen.
- Triggerpijplijnen die zijn gekoppeld aan aangepaste gebeurtenissen.
Als u een aangepaste gebeurtenistrigger wilt maken of bijwerken, moet u zich aanmelden bij Data Factory met een Azure-account met de juiste toegang. Anders mislukt de bewerking met de fout Toegang geweigerd .
Data Factory vereist geen speciale machtigingen voor uw Event Grid. U hoeft ook geen speciale Azure RBAC-rolmachtiging toe te wijzen aan de Data Factory-service-principal voor de bewerking.
U hebt specifiek toestemming nodig Microsoft.EventGrid/EventSubscriptions/Write
voor /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics
.
- Bij het ontwerpen in de data factory (bijvoorbeeld in de ontwikkelomgeving) moet het azure-account dat is aangemeld, de bovenstaande machtiging hebben
- Bij het publiceren via CI/CD moet het account dat wordt gebruikt voor het publiceren van de ARM-sjabloon in de test- of productiefactory de bovenstaande machtiging hebben.
Gerelateerde inhoud
- Gedetailleerde informatie over de uitvoering van triggers ophalen.
- Meer informatie over het verwijzen naar triggermetagegevens in pijplijnuitvoeringen.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor