Condividi tramite


Creare un trigger di eventi personalizzati 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 all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Un'architettura guidata dagli eventi è un comune modello di integrazione dei dati che implica produzione, rilevamento, utilizzo e risposta agli eventi. Negli scenari di integrazione dei dati è spesso necessario che i clienti di Azure Data Factory attivino pipeline quando si verificano determinati eventi. L'integrazione nativa di Data Factory con Griglia di eventi di Azure copre ora argomenti personalizzati. Dopo aver inviato un evento a un argomento di Griglia di eventi, Data Factory sottoscrive l'argomento, rimane in ascolto e attiva le pipeline di conseguenza.

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 un provider di risorse di Data Factory. In caso contrario, viene visualizzato un messaggio in cui si specifica che "la creazione di una sottoscrizione di eventi non è riuscita".

Se si combinano i parametri della pipeline con un trigger di eventi personalizzati, è possibile analizzare e fare riferimento a payload data personalizzati nelle esecuzioni della pipeline. Poiché il campo data in un payload di evento personalizzato è una struttura a mano libera di un valore di chiave JSON, è possibile controllare le esecuzioni delle pipeline basate su eventi.

Importante

Se nel payload dell'evento personalizzato manca una chiave a cui viene fatto riferimento nella parametrizzazione, trigger run ha esito negativo. Viene visualizzato un messaggio in cui si specifica che l'espressione non può essere valutata perché la proprietà keyName non esiste. In questo caso, dall'evento non viene attivata nessuna pipeline run.

Configurare un argomento personalizzato in Griglia di eventi

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

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

Nota

Il flusso di lavoro è diverso da un trigger di eventi di archiviazione. In questo caso, Data Factory non configura l'argomento in modo automatico.

Data Factory presuppone che gli eventi seguano lo schema di eventi di Griglia di eventi. Assicurarsi che nei payload degli eventi siano disponibili 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 personalizzati

  1. Passare a Data Factory e accedere.

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

  3. Scegliere Trigger dal menu e quindi selezionare Nuovo/Modifica.

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

  5. In Tipo: selezionare Eventi personalizzati.

    Screenshot che mostra la creazione di un nuovo trigger di eventi personalizzati nell'interfaccia utente di Data Factory.

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

    Nota

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

  7. Le proprietà Subject begins with e Subject ends with consentono di filtrare gli eventi di trigger. Entrambe le proprietà sono facoltative.

  8. Usare + Nuovo per aggiungere Tipi di eventi da filtrare. L'elenco di trigger di eventi personalizzati usa una relazione OR. Quando un evento personalizzato con una proprietà eventType corrisponde a un evento presente 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 eventi copycompleted o copysucceeded il cui oggetto inizia con factory.

    Screenshot della pagina Modifica trigger per illustrare i filtri relativi al tipo di evento e all'oggetto nell'interfaccia utente di Data Factory.

  9. Un trigger di evento personalizzato può analizzare e inviare alla pipeline un payload data personalizzato. Si creano i parametri della pipeline e 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 ulteriori informazioni, vedere:

    Screenshot delle impostazioni dei parametri di una pipeline.

    Screenshot della pagina dei parametri che fanno riferimento al payload dati in un evento personalizzato.

  10. Dopo aver immesso i parametri, selezionare OK.

Filtro avanzato

I trigger di eventi personalizzati supportano funzionalità di filtro avanzate, in modo analogo ai Filtri avanzati di Griglia di eventi. Questi filtri condizionali consentono l'attivazione delle pipeline in base ai valori del payload dell'evento. È possibile, ad esempio, che nel payload dell'evento sia presente un campo denominato Reparto e che la pipeline venga attivata solo se Reparto è uguale a Amministrazione. È possibile anche specificare logica complessa, come il campo data nell'elenco [1, 2, 3, 4, 5], il campo mese non nell'elenco [11, 12], e se il campo tag contiene [Anno fiscale 2021, AnnoFiscale2021 o AF2021].

Screenshot che mostra l'impostazione di filtri avanzati per un trigger di eventi personalizzati.

A partire da oggi, i trigger di eventi personalizzati supportano un subset di operatori di filtro avanzati in Griglia di eventi. Sono supportate le seguenti condizioni di filtro:

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

Selezionare + Nuovo per aggiungere nuove condizioni di filtro.

I trigger di eventi personalizzati sono inoltre vincolati alle stesse limitazioni di Griglia di eventi, ad esempio:

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

Data Factory si basa sulla versione di disponibilità generale più recente dell'API Griglia di eventi. Man mano che le nuove versioni dell'API giungono alla fase di disponibilità generale, Data Factory ne espande 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. String ID Azure Resource Manager Sì.
events Tipo di eventi che provocano l'attivazione del trigger. Matrice di stringhe Sì, è previsto almeno un valore.
subjectBeginsWith Il campo subject deve iniziare con il criterio fornito per poter attivare il trigger. Il criterio factories, ad esempio, attiva il trigger solo per gli oggetti evento che iniziano con factories. String Nr.
subjectEndsWith Il campo subject deve terminare con il criterio specificato per attivare il trigger. String Nr.
advancedFilters Elenco di file BLOB JSON, ognuno dei quali specifica una condizione di filtro. Ogni file BLOB specifica key, operatorType e values. Elenco di file BLOB JSON No.

Controllo degli accessi in base al ruolo

Data Factory usa il controllo degli accessi in base al ruolo di Azure per impedire accessi non autorizzati. Per un funzionamento corretto, Data Factory deve poter:

  • Restare in ascolto di eventi.
  • Sottoscrivere aggiornamenti dagli eventi.
  • Attivare pipeline collegate a eventi personalizzati.

Per creare o aggiornare correttamente un trigger di eventi personalizzati, è necessario accedere a Data Factory con un account Azure con diritti di accesso appropriati. In caso contrario, l'operazione ha esito negativo con il messaggio "Accesso negato".

Data Factory non richiede autorizzazioni speciali per un'istanza di Griglia di eventi. Analogamente, non è 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 l'autorizzazione Microsoft.EventGrid/EventSubscriptions/Write su /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.
  • Quando si esegue la pubblicazione tramite integrazione continua e recapito continuo, l'account usato per pubblicare il modello Azure Resource Manager nella factory di test o produzione deve avere l'autorizzazione precedente.