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 .

Met gebeurtenistriggers in Azure Data Factory kunt u de uitvoering van pijplijnen automatiseren op basis van specifieke gebeurtenissen in uw gegevensbronnen. Dit is een belangrijke functie van gebeurtenisgestuurde architectuur, waardoor realtime gegevensintegratie en -verwerking mogelijk is.

Gebeurtenisgestuurde architectuur is een gemeenschappelijk gegevensintegratiepatroon 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.

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 een Data Factory-resourceprovider. Anders krijgt u een bericht met de mededeling 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 aangepaste nettolading van gebeurtenissen een vrije vorm is, kunt u de JSON-sleutelwaardestructuur beheren.

Belangrijk

Als een sleutel waarnaar wordt verwezen in parameterisatie ontbreekt in de nettolading van de aangepaste gebeurtenis, trigger run mislukt dit. U krijgt een bericht waarin wordt aangegeven dat de expressie niet kan worden geëvalueerd omdat de keyName eigenschap niet bestaat. In dit geval wordt er geen pipeline run geactiveerd door de gebeurtenis.

Use cases voor gebeurtenissen en triggers

Triggers kunnen worden geactiveerd door verschillende gebeurtenissen, waaronder:

Blob gemaakt: wanneer een nieuw bestand wordt geüpload naar een opgegeven container. Blob verwijderd: wanneer een bestand uit de container wordt verwijderd. Blob gewijzigd: wanneer een bestaand bestand wordt bijgewerkt.

U kunt gebeurtenissen gebruiken om uw pijplijnuitvoeringen dynamisch te beheren. Wanneer bijvoorbeeld een nieuw gegevensbestand wordt geüpload naar de map 'inkomend' in Azure Blob Storage, kan een trigger automatisch een pijplijn starten om de gegevens te verwerken, zodat de gegevens tijdig kunnen worden geïntegreerd.

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 Event Grid en maak het onderwerp zelf. Zie voor meer informatie over het maken van het aangepaste onderwerp de Event Grid-portalzelfstudies en Azure CLI-zelfstudies.

Notitie

De werkstroom verschilt van een gebeurtenistrigger voor opslag. Hier stelt Data Factory het onderwerp niet voor u in.

Data Factory verwacht dat gebeurtenissen het Event Grid-gebeurtenisschema volgen. Zorg ervoor dat de 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 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 onder Type.

    Schermopname van het maken van een nieuwe aangepaste gebeurtenistrigger in de Data Factory-gebruikersinterface.

  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 van Azure (Azure RBAC). Er is geen andere 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. Met de Subject begins with eigenschappen Subject ends with kunt u 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 eventType eigenschap overeenkomt met een 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.

    Schermopname van de pagina Trigger bewerken om gebeurtenistypen en onderwerpfilters uit te leggen in de gebruikersinterface van Data Factory.

  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 voor een gedetailleerde uitleg:

    Schermopname van de instellingen voor pijplijnparameters.

    Schermopname van de pagina parameters om te verwijzen naar de nettolading van gegevens in een aangepaste gebeurtenis.

  10. Nadat u de parameters hebt ingevoerd, selecteert u OK.

Geavanceerd filteren

Aangepaste gebeurtenistriggers ondersteunen geavanceerde filtermogelijkheden, vergelijkbaar met geavanceerde filters van Event Grid. Met deze voorwaardelijke filters kunnen pijplijnen worden geactiveerd op basis van de waarden van de nettolading van de gebeurtenis. U hebt bijvoorbeeld een veld in de nettolading van de gebeurtenis met de naam Afdeling en de pijplijn mag alleen worden geactiveerd als Afdeling gelijk is aan Financiën. U kunt ook complexe logica opgeven, zoals het datumveld in lijst [1, 2, 3, 4, 5], het maandveld niet in de lijst [11, 12], en als het tagveld [Fiscaal jaar 2021, FiscalYear2021 of FY2021 bevat].

Schermopname van het instellen van geavanceerde filters voor een gebeurtenistrigger van een klant.

Vanaf vandaag ondersteunen aangepaste gebeurtenistriggers 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.

Aangepaste gebeurtenistriggers voldoen ook aan dezelfde beperkingen als Event Grid, zoals:

  • 5 geavanceerde filters en 25 filterwaarden voor alle filters per aangepaste gebeurtenistrigger.
  • 512 tekens per tekenreekswaarde.
  • 5 waarden voor in en not in operators.
  • Sleutels kunnen het teken (punt) niet bevatten . , john.doe@contoso.combijvoorbeeld. 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 algemene beschikbaarheidsversie van de Event Grid-API. Naarmate nieuwe API-versies naar de GA-fase gaan, breidt Data Factory de ondersteuning uit voor geavanceerdere filteroperators.

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 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-blobs Nee

Op rollen gebaseerd toegangsbeheer

Data Factory gebruikt 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 het bericht 'Toegang geweigerd'.

Data Factory vereist geen speciale machtigingen voor uw exemplaar van 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.

  • Wanneer u bijvoorbeeld ontwerpt in de data factory (in de ontwikkelomgeving), moet het Azure-account dat is aangemeld de voorgaande machtiging hebben.
  • Wanneer u publiceert via continue integratie en continue levering, moet het account dat wordt gebruikt voor het publiceren van de Azure Resource Manager-sjabloon in de test- of productiefactory de voorgaande machtiging hebben.