Share via


Creare un trigger di evento personalizzato per eseguire una pipeline in Azure Data Factory

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Un'architettura guidata dagli eventi è un comune modello di integrazione dei dati che implica produzione, rilevamento, utilizzo e risposta agli eventi. Gli scenari di integrazione dei dati spesso richiedono ai clienti di Azure Data Factory di attivare pipeline quando si verificano determinati eventi. L'integrazione nativa di Data Factory con Griglia di eventi di Azure ora illustra gli argomenti personalizzati. Gli eventi vengono inviati a un argomento di Griglia di eventi. Data Factory sottoscrive l'argomento, rimane in ascolto e quindi attiva le pipeline di conseguenza.

Nota

L'integrazione descritta in questo articolo dipende dalla Griglia di eventi di Azure. Verificare che la sottoscrizione sia registrata con il provider di risorse di Griglia di eventi. Per altre informazioni, vedere Provider e tipi di risorse. È necessario essere in grado di eseguire l'azione Microsoft.EventGrid/eventSubscriptions/ . Questa azione fa parte del ruolo predefinito EventGrid EventSubscription Contributor .

Importante

Se si usa questa funzionalità in Azure Synapse Analytics, assicurarsi che la sottoscrizione sia registrata anche con il provider di risorse di Data Factory o che venga visualizzato un errore che informa che la creazione di una "sottoscrizione di eventi" non è riuscita.

Se si combinano parametri della pipeline e un trigger di eventi personalizzati, è possibile analizzare e fare riferimento a payload personalizzati data nelle esecuzioni della pipeline. Poiché il data campo in un payload di evento personalizzato è una struttura a forma libera e chiave-valore JSON, è possibile controllare le esecuzioni di pipeline guidate dagli eventi.

Importante

Se manca una chiave a cui viene fatto riferimento nella parametrizzazione nel payload dell'evento personalizzato, trigger run avrà esito negativo. Verrà visualizzato un errore che indica che l'espressione non può essere valutata perché la proprietà keyName non esiste. In questo caso, l'evento nonpipeline run verrà attivato.

Configurare un argomento personalizzato in Griglia di eventi

Per usare il trigger di eventi personalizzato in Data Factory, è prima necessario configurare un argomento personalizzato in Griglia di eventi.

Passare a Griglia di eventi di Azure e creare l'argomento manualmente. Per altre informazioni su come creare l'argomento personalizzato, vedere esercitazioni sul portale Griglia di eventi di Azure e esercitazioni sull'interfaccia della riga di comando.

Nota

Il flusso di lavoro è diverso da Archiviazione Trigger di eventi. In questo caso, Data Factory non configura l'argomento.

Data Factory prevede che gli eventi seguano lo schema di eventi di Griglia di eventi. Assicurarsi che i payload degli eventi abbiano i campi seguenti:

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

Usare Data Factory per creare un trigger di eventi personalizzato

  1. Passare ad Azure Data Factory e accedere.

  2. Passare alla scheda Modifica . Cercare l'icona a forma di matita.

  3. Selezionare Trigger nel menu e quindi selezionare Nuovo/Modifica.

  4. Nella pagina Aggiungi trigger selezionare Scegli trigger e quindi + Nuovo.

  5. Selezionare Eventi personalizzati per Tipo.

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

  6. Selezionare l'argomento personalizzato dall'elenco a discesa della sottoscrizione di Azure o immettere manualmente l'ambito dell'argomento dell'evento.

    Nota

    Per creare o modificare un trigger di evento personalizzato in Data Factory, è necessario usare un account Azure con il controllo degli accessi in base al ruolo appropriato. Non è necessaria alcuna autorizzazione aggiuntiva. L'entità servizio di Data Factory non richiede autorizzazioni speciali per Griglia di eventi. Per altre informazioni sul controllo di accesso, vedere la sezione Controllo degli accessi in base al ruolo .

  7. L'oggetto inizia con e Subject termina con le proprietà che consentono di filtrare gli eventi di trigger. Entrambe le proprietà sono facoltative.

  8. Usare + Nuovo per aggiungere tipi di evento per filtrare. L'elenco di trigger di eventi personalizzati usa una relazione OR. Quando un evento personalizzato con una eventType proprietà corrispondente a uno nell'elenco, viene attivata un'esecuzione della pipeline. Il tipo di evento non fa distinzione tra maiuscole e minuscole. Nello screenshot seguente, ad esempio, il trigger corrisponde a tutti gli copycompleted eventi o copysucceeded che hanno un oggetto che inizia con le factory.

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

  9. Un trigger di evento personalizzato può analizzare e inviare un payload personalizzato data alla pipeline. Si creano i parametri della pipeline e quindi si compilano i valori nella pagina Parametri . Usare il formato @triggerBody().event.data._keyName_ per analizzare il payload dei dati e passare i valori ai parametri della pipeline.

    Per una spiegazione dettagliata, vedere gli articoli seguenti:

    Screenshot of pipeline parameters settings.

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

  10. Dopo aver immesso i parametri, selezionare OK.

Filtro avanzato

Il trigger di eventi personalizzato supporta funzionalità di filtro avanzate, analogamente al filtro avanzato di Griglia di eventi. Questi filtri condizionali consentono alle pipeline di attivare in base ai valori del payload dell'evento. Ad esempio, potrebbe essere presente un campo nel payload dell'evento, denominato Reparto e pipeline, deve essere attivato solo se Department è uguale a Finance. È anche possibile specificare logica complessa, ad esempio il campo data nell'elenco [1, 2, 3, 4, 5], il campo mese non incluso nell'elenco [11, 12], il campo tag contiene uno qualsiasi di ['Anno fiscale 2021', 'FiscalYear2021', 'FY2021'].

Screenshot of setting advanced filters for customer event trigger

A partire da oggi il trigger di eventi personalizzato supporta un subset di operatori di filtro avanzati in Griglia di eventi. Sono supportate le condizioni di filtro seguenti:

  • NumberIn
  • NumberNotIn
  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEquals
  • NumberGreaterThanOrEquals
  • BoolEquals
  • StringContains
  • StringBeginsWith
  • StringEndsWith
  • StringIn
  • StringNotIn

Selezionare +Nuovo per aggiungere nuove condizioni di filtro.

Inoltre, i trigger di eventi personalizzati rispettano le stesse limitazioni di Griglia di eventi, tra cui:

  • 5 filtri avanzati e 25 valori di filtro in tutti i filtri per ogni trigger di evento personalizzato
  • 512 caratteri per ogni valore stringa
  • 5 valori per gli operatori in e non in
  • le chiavi non possono contenere . (punto) caratteri, ad esempio john.doe@contoso.com. Attualmente non è disponibile alcun supporto per i caratteri di escape nelle chiavi.
  • È possibile usare l'elemento key in più filtri.

Data Factory si basa sulla versione disponibile a livello generale più recente dell'API griglia di eventi. Man mano che le nuove versioni dell'API arrivano alla fase ga, Data Factory espanderà il supporto per operatori di filtro più avanzati.

Schema JSON

La tabella seguente offre una panoramica degli elementi dello schema correlati ai trigger di eventi personalizzati:

Elemento JSON Descrizione Tipo Valori consentiti Richiesto
scope ID risorsa di Azure Resource Manager dell'argomento Griglia di eventi. Stringa ID Azure Resource Manager
events Tipo di eventi che provocano l'attivazione del trigger. Matrice di stringhe Sì, è previsto almeno un valore.
subjectBeginsWith Il subject campo deve iniziare con il modello fornito per l'attivazione del trigger. Ad esempio, le factory attivano solo il trigger per gli oggetti evento che iniziano con le factory. Stringa No
subjectEndsWith Il subject campo deve terminare con il modello fornito per l'attivazione del trigger. Stringa No
advancedFilters Elenco di BLOB JSON, ognuno dei quali specifica una condizione di filtro. Ogni BLOB specifica key, operatorTypee values. Elenco di BLOB JSON No

Controllo degli accessi in base al ruolo

Azure Data Factory usa il controllo degli accessi in base al ruolo di Azure per impedire l'accesso non autorizzato. Per funzionare correttamente, Data Factory richiede l'accesso a:

  • Ascoltare gli eventi.
  • Sottoscrivere gli aggiornamenti dagli eventi.
  • Attivare pipeline collegate a eventi personalizzati.

Per creare o aggiornare correttamente un trigger di evento personalizzato, è necessario accedere a Data Factory con un account Azure con accesso appropriato. In caso contrario, l'operazione avrà esito negativo con un errore di accesso negato .

Data Factory non richiede autorizzazioni speciali per Griglia di eventi. Non è inoltre necessario assegnare un'autorizzazione speciale per il ruolo controllo degli accessi in base al ruolo di Azure all'entità servizio di Data Factory per l'operazione.

In particolare, è necessaria Microsoft.EventGrid/EventSubscriptions/Write l'autorizzazione per /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics.

  • Quando si crea nella data factory (ad esempio nell'ambiente di sviluppo), l'account Azure connesso deve avere l'autorizzazione precedente
  • Durante la pubblicazione tramite CI/CD, l'account usato per pubblicare il modello di Resource Manager nella factory di test o produzione deve avere l'autorizzazione precedente.