Delen via


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

  1. Ga naar Azure Data Factory en meld u aan.

  2. Ga naar het tabblad Bewerken . Zoek naar het potloodpictogram.

  3. Selecteer Trigger in het menu en selecteer Vervolgens Nieuw/Bewerken.

  4. Selecteer op de pagina Triggers toevoegen de optie Trigger kiezen en selecteer vervolgens +Nieuw.

  5. Selecteer Aangepaste gebeurtenissen voor type.

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

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

  7. Het onderwerp begint met en het onderwerp eindigt met eigenschappen, zodat u kunt filteren op trigger-gebeurtenissen. Beide eigenschappen zijn optioneel.

  8. 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 alle copycompleted gebeurtenissen of copysucceeded gebeurtenissen met een onderwerp dat begint met factory's.

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

  9. 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:

    Screenshot of pipeline parameters settings.

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

  10. 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'].

Screenshot of setting advanced filters for customer event trigger

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.combevatten . . 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, operatorTypeen 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.