Copiare i dati e inviare notifiche tramite posta elettronica in caso di esito positivo e negativo

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 .

In questa esercitazione si crea una pipeline di Data Factory che illustra alcune funzionalità del flusso di controllo. La pipeline esegue una semplice copia da un contenitore nell'archivio BLOB di Azure a un altro contenitore nello stesso account di archiviazione. Se l'attività di copia ha esito positivo, la pipeline invia i dettagli dell'operazione di copia completata (ad esempio, la quantità di dati scritti) in un messaggio di posta elettronica di operazione riuscita. Se l'attività di copia ha esito negativo, la pipeline invia i dettagli dell'errore di copia (ad esempio, il messaggio di errore) in un messaggio di posta elettronica di operazione non riuscita. Nel corso dell'esercitazione verrà illustrato come passare i parametri.

Panoramica generale dello scenario: Diagram shows Azure Blob Storage, which is the target of a copy, which, on success, sends an email with details or, on failure, sends an email with error details.

In questa esercitazione vengono completati i passaggi seguenti:

  • Creare una data factory.
  • Creare un servizio collegato Archiviazione di Azure
  • Creare un set di dati del BLOB di Azure
  • Creare una pipeline contenente un'attività Copia e un'attività Web
  • Inviare gli output delle attività alle attività successive
  • Utilizzare il passaggio di parametri e le variabili di sistema
  • Avviare un'esecuzione della pipeline
  • Monitorare le esecuzioni di pipeline e attività

Questa esercitazione usa il portale di Azure. È possibile usare altri meccanismi per interagire con Azure Data Factory. Vedere "Guide introduttive" nel sommario.

Prerequisiti

  • Sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Account di archiviazione di Azure. Usare l'archivio BLOB come archivio dati di origine. Se non si ha un account di archiviazione di Azure, vedere l'articolo Creare un account di archiviazione per informazioni su come crearne uno.
  • Database SQL di Azure. Usare il database come archivio dati sink. Se non si ha un database nel database SQL di Azure, vedere la procedura per crearne uno nell'articolo Creare un database nel database SQL di Azure.

Creare la tabella BLOB

  1. Avviare il Blocco note. Copiare il testo seguente e salvarlo come file input.txt sul disco.

    John,Doe
    Jane,Doe
    
  2. Usare strumenti come Azure Storage Explorer per seguire questa procedura:

    1. Creare il contenitore adfv2branch.
    2. Creare la cartella di input nel contenitore adfv2branch.
    3. Caricare il file input.txt nel contenitore.

Creare gli endpoint del flusso di lavoro del messaggio di posta elettronica

Per attivare l'invio di un messaggio di posta elettronica dalla pipeline, usare App per la logica di Azure per definire il flusso di lavoro. Per altre informazioni sulla creazione di un flusso di lavoro dell'app per la logica, vedere Creare un flusso di lavoro di app per la logica a consumo di esempio.

Flusso di lavoro del messaggio di posta elettronica di operazione riuscita

Creare un flusso di lavoro dell'app per la logica a consumo denominato CopySuccessEmail. Aggiungere il trigger richiesta denominato Quando viene ricevuta una richiesta HTTP e aggiungere l'azione di Office 365 Outlook denominata Invia un messaggio di posta elettronica. Se richiesto, accedere all'account di Office 365 Outlook.

Shows a screenshot of the Success email workflow.

Per il trigger Richiesta, compilare la casella Request Body JSON Schema (Schema JSON del corpo della richiesta) con il codice JSON seguente:

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

Il trigger Richiesta nella finestra di progettazione del flusso di lavoro dovrebbe essere simile all'immagine seguente:

Shows a screenshot of the workflow designer with Request trigger.

Per l'azione Invia un messaggio di posta elettronica , personalizzare la modalità di formattazione del messaggio di posta elettronica, usando le proprietà passate nello schema JSON del corpo della richiesta. Ecco un esempio:

Shows a screenshot of the workflow designer with the action named Send an email.

Salvare il flusso di lavoro. Prendere nota dell'URL della richiesta HTTP Post per il flusso di lavoro del messaggio di posta elettronica di operazione riuscita:

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Flusso di lavoro del messaggio di posta elettronica di operazione non riuscita

Seguire la stessa procedura per creare un altro flusso di lavoro dell'app per la logica denominato CopyFailEmail. Nel trigger Richiesta il valore dello schema JSON del corpo della richiesta è lo stesso. Modificare la formattazione del messaggio di posta elettronica, ad esempio Subject, per adattarlo a un messaggio di posta elettronica di operazione non riuscita. Ecco un esempio:

Shows a screenshot of the workflow designer with the fail email workflow.

Salvare il flusso di lavoro. Prendere nota dell'URL della richiesta HTTP Post per il flusso di lavoro del messaggio di posta elettronica di operazione non riuscita:

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Si avranno ora due URL di flusso di lavoro:

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Creare una data factory

  1. Avviare il Web browser Microsoft Edge o Google Chrome. L'interfaccia utente di Data Factory è attualmente supportata solo nei Web browser Microsoft Edge e Google Chrome.

  2. Espandere il menu in alto a sinistra e selezionare Crea una risorsa. Selezionare quindi Integration Data Factory:Then select >Integration>Data Factory:

    Shows a screenshot of the "Create a resource" button in the Azure portal.

    Shows a screenshot of the Data Factory selection in the "New" pane.

  3. Nella pagina Nuova data factory immettere ADFTutorialDataFactory per Nome.

    New data factory page

    Il nome della data factory di Azure deve essere univoco a livello globale. Se viene visualizzato l'errore seguente, modificare il nome della data factory, ad esempio, nomeutenteADFTutorialDataFactory, e provare di nuovo a crearla. Per informazioni sulle regole di denominazione per gli elementi di Data Factory, vedere l'articolo Data Factory - Regole di denominazione.

    Il nome della data factory "ADFTutorialDataFactory" non è disponibile.

  4. Selezionare la sottoscrizione di Azure in cui creare la data factory.

  5. Per il gruppo di risorse, eseguire una di queste operazioni:

  6. Selezionare V2 per version.

  7. Selezionare la località per la data factory. Nell'elenco a discesa vengono mostrate solo le località supportate. Gli archivi dati (Archiviazione di Azure, database SQL di Azure e così via) e le risorse di calcolo (HDInsight e così via) usati dalla data factory possono trovarsi in altre aree.

  8. Selezionare Aggiungi al dashboard.

  9. Fai clic su Crea.

  10. Al termine della creazione verrà visualizzata la pagina Data factory, come illustrato nell'immagine.

    Shows a screenshot of the data factory home page.

  11. Fare clic sul riquadro Apri Azure Data Factory Studio per avviare l'interfaccia utente di Azure Data Factory in una scheda separata.

Creare una pipeline

In questo passaggio viene creata una pipeline con un'attività Copia e due attività Web. Vengono usate le funzionalità seguenti per creare la pipeline:

  • Parametri per la pipeline a cui accedono i set di dati.
  • Attività Web per richiamare i flussi di lavoro delle app per la logica per inviare messaggi di posta elettronica di operazione riuscita o non riuscita.
  • Connessione di un'attività con un'altra attività (in caso di esito positivo e negativo)
  • Uso dell'output di un'attività come input per l'attività successiva
  1. Nella home page dell'interfaccia utente di Data Factory fare clic sul riquadro Orchestrate .In the home page of Data Factory UI, click the Orchestrate tile.

    Shows a screenshot of the data factory home page with the Orchestrate tile highlighted.

  2. Nella finestra delle proprietà per la pipeline passare alla scheda Parametri e usare il pulsante Nuovo per aggiungere i tre parametri seguenti di tipo String: sourceBlobContainer, sinkBlobContainer e receiver.

    • sourceBlobContainer: parametro nella pipeline utilizzato dal set di dati del BLOB di origine.
    • sinkBlobContainer : parametro nella pipeline utilizzata dal set di dati del BLOB sink
    • receiver : questo parametro viene usato dalle due attività Web nella pipeline che inviano messaggi di posta elettronica di esito positivo o negativo al ricevitore il cui indirizzo di posta elettronica è specificato da questo parametro.

    Shows a screenshot of the New pipeline menu.

  3. Nella casella degli strumenti Attività cercare Copia e trascinare l'attività Copia nell'area di progettazione della pipeline.

    Shows a screenshot demonstrating how to drag and drop the copy activity onto the pipeline designer.

  4. Selezionare l'attività Copia trascinata nell'area di progettazione della pipeline. Nella finestra Proprietà per l'attività Copia nella parte inferiore passare alla scheda Origine e fare clic su + Nuovo. In questa attività viene creato un set di dati di origine per l'attività di copia.

    Screenshot that shows how to create a source dataset for the copy activity.

  5. Nella finestra Nuovo set di dati selezionare la scheda Azure nella parte superiore, quindi scegliere Archiviazione BLOB di Azure e selezionare Continua.

    Shows a screenshot of the select Azure Blob Storage button.

  6. Nella finestra Seleziona formato scegliere DelimitedText e selezionare Continua.

    Shows a screenshot of the "Select Format" window with the DelimitedText format highlighted.

  7. Verrà visualizzata una nuova scheda denominata Imposta proprietà. Modificare il nome del set di dati in SourceBlobDataset. Selezionare l'elenco a discesa Servizio collegato e scegliere +Nuovo per creare un nuovo servizio collegato nel set di dati di origine.

    Shows a screenshot of the "Set properties" window for the dataset, with the "+New" button highlighted under the "Linked service" dropdown.**

  8. Verrà visualizzata la finestra Nuovo servizio collegato in cui è possibile compilare le proprietà necessarie per il servizio collegato.

    Shows a screenshot fo the dataset connection window with the new linked service button highlighted.

  9. Nella finestra New Linked Service (Nuovo servizio collegato) completare questa procedura:

    1. Immettere AzureStorageLinkedService per Nome.
    2. Selezionare l'account di archiviazione di Azure per Nome account di archiviazione.
    3. Fai clic su Crea.
  10. Nella finestra Imposta proprietà visualizzata successivamente selezionare Apri questo set di dati per immettere un valore con parametri per il nome del file.

    Shows a screenshot of the dataset "Set properties" window with the "Open this dataset" link highlighted.

  11. Immettere @pipeline().parameters.sourceBlobContainer per la cartella e emp.txt per il nome file.

    Shows a screenshot of the source dataset settings.

  12. Tornare alla scheda della pipeline (o fare clic sulla pipeline nella visualizzazione albero a sinistra) e selezionare l'attività Copia nella finestra di progettazione. Verificare che il nuovo set di dati sia selezionato per Set di dati di origine.

    Shows a screenshot of the source dataset.

  13. Nella finestra delle proprietà passare alla scheda Sink e fare clic su + Nuovo per Sink Dataset (Set di dati sink). In questo passaggio viene creato un set di dati sink per l'attività di copia con una procedura simile a quella per il set di dati di origine.

    Shows a screenshot of the new sink dataset button

  14. Nella finestra Nuovo set di dati selezionare Archiviazione BLOB di Azure e fare clic su Continua, quindi selezionare di nuovo DelimitedText nella finestra Seleziona formato e fare di nuovo clic su Continua.

  15. Nella pagina Imposta proprietà per il set di dati immettere SinkBlobDataset per Nome e selezionare Azure Archiviazione LinkedService per LinkedService.

  16. Espandere la sezione Avanzate della pagina delle proprietà e selezionare Apri questo set di dati.

  17. Nella scheda Connessione ion del set di dati modificare il percorso file. Immettere @pipeline().parameters.sinkBlobContainer per la cartella e @concat(pipeline().RunId, '.txt') per il nome del file. L'espressione usa l'ID dell'esecuzione attuale della pipeline per il nome del file. Per l'elenco delle variabili di sistema e delle espressioni supportate, vedere Variabili di sistema e Linguaggio delle espressioni.

    Shows a screenshot of the Sink dataset settings.

  18. Tornare alla scheda pipeline nella parte superiore. Cercare Web nella casella di ricerca e trascinare un'attività Web nell'area di progettazione della pipeline. Impostare il nome dell'attività su SendSuccessEmailActivity. L'attività Web consente una chiamata a qualsiasi endpoint REST. Per altre informazioni sull'attività, vedere l'articolo relativo all'attività Web. Questa pipeline usa un'attività Web per chiamare il flusso di lavoro di app per la logica per il messaggio di posta elettronica.

    Shows a screenshot demonstrating how to drag and drop the first Web activity.

  19. Passare alla scheda Impostazioni dalla scheda Generale e seguire questa procedura:

    1. Per URL specificare l'URL per il flusso di lavoro di app per la logica che invia il messaggio di posta elettronica di operazione riuscita.

    2. Selezionare POST per Metodo.

    3. Fare clic sul collegamento + Aggiungi intestazione nella sezione Intestazioni.

    4. Aggiungere un'intestazione Tipo contenuto e impostarla su application/json.

    5. Specificare il codice JSON seguente per Corpo.

      {
          "message": "@{activity('Copy1').output.dataWritten}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      Il corpo del messaggio contiene le proprietà seguenti:

      • Message - Passaggio del valore di @{activity('Copy1').output.dataWritten. Accede a una proprietà della precedente attività di copia e passa il valore di dataWritten. In caso di esito negativo, passa invece l'output di errore di @{activity('CopyBlobtoBlob').error.message.

      • Nome data factory: passaggio del valore di Si tratta di una variabile di @{pipeline().DataFactory} sistema che consente di accedere al nome della data factory corrispondente. Per un elenco delle variabili di sistema, vedere l'articolo relativo alle variabili di sistema.

      • Nome pipeline: passaggio del valore di @{pipeline().Pipeline}. È anche questa una variabile di sistema, che consente di accedere al nome di pipeline corrispondente.

      • Ricevitore : passaggio del valore "@pipeline().parameters.receiver"). per l'accesso ai parametri della pipeline.

        Shows a screenshot of the settings for the first Web activity.

  20. ConnessioneCopiare l'attività nell'attività Web trascinando il pulsante della casella di controllo verde accanto al attività Copy e rilasciando l'attività Web.

    Shows a screenshot demonstrating how to connect the Copy activity with the first Web activity.

  21. Trascinare un'altra attività Web dalla casella degli strumenti Attività all'area di progettazione della pipeline e impostare nome su SendFailureEmailActivity.

    Shows a screenshot of the name of the second Web activity.

  22. Passare alla scheda Impostazioni e seguire questa procedura:

    1. Per URL specificare l'URL per il flusso di lavoro di app per la logica che invia il messaggio di posta elettronica di operazione non riuscita.

    2. Selezionare POST per Metodo.

    3. Fare clic sul collegamento + Aggiungi intestazione nella sezione Intestazioni.

    4. Aggiungere un'intestazione Tipo contenuto e impostarla su application/json.

    5. Specificare il codice JSON seguente per Corpo.

      {
          "message": "@{activity('Copy1').error.message}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      Shows a screenshot of the settings for the second Web activity.

  23. Selezionare il pulsante X rosso sul lato destro dell'attività Copia nella finestra di progettazione della pipeline e trascinarlo nell'oggetto SendFailureEmailActivity appena creato.

    Screenshot that shows how to select Error on the Copy activity in the pipeline designer.

  24. Per convalidare la pipeline, fare clic sul pulsante Convalida sulla barra degli strumenti. Chiudere la finestra Pipeline Validation Output (Output di convalida della pipeline) facendo clic sul pulsante >>.

    Shows a screenshot of the Validate pipeline button.

  25. Per pubblicare le entità (set di dati, pipeline e così via) nel servizio Data Factory, selezionare Pubblica tutti. Attendere fino alla visualizzazione del messaggio Pubblicazione riuscita.

    Shows a screenshot of the Publish button in the data factory portal.

Attivare un'esecuzione della pipeline con esito positivo

  1. Per attivare un'esecuzione della pipeline, fare clic su Trigger sulla barra degli strumenti e quindi su Trigger Now (Attiva adesso).

    Shows a screenshot of the Trigger Now button.

  2. Nella finestra Pipeline Run (Esecuzioni di pipeline) seguire questa procedura:

    1. Immettere adftutorial/adfv2branch/input per il parametro sourceBlobContainer.

    2. Immettere adftutorial/adfv2branch/output per il parametro sinkBlobContainer.

    3. Immettere un indirizzo di posta elettronica per receiver.

    4. Fare clic su Fine

      Pipeline run parameters

Monitorare l'esecuzione della pipeline con esito positivo

  1. Per monitorare l'esecuzione della pipeline passare alla scheda Monitoraggio a sinistra. Viene visualizzata l'esecuzione della pipeline attivata manualmente in precedenza. Usare il pulsante Aggiorna per aggiornare l'elenco.

    Successful pipeline run

  2. Per visualizzare le esecuzioni attività associate a questa esecuzione della pipeline, fare clic sul primo collegamento nella colonna Azioni. È possibile tornare alla visualizzazione precedente facendo clic su Pipeline in alto. Usare il pulsante Aggiorna per aggiornare l'elenco.

    Screenshot that shows how to view the list of activity runs.

Attivare un'esecuzione della pipeline con esito negativo

  1. Passare alla scheda Modifica a sinistra.

  2. Per attivare un'esecuzione della pipeline, fare clic su Trigger sulla barra degli strumenti e quindi su Trigger Now (Attiva adesso).

  3. Nella finestra Pipeline Run (Esecuzioni di pipeline) seguire questa procedura:

    1. Immettere adftutorial/dummy/input per il parametro sourceBlobContainer. Assicurarsi che la cartella fittizia non esista nel contenitore adftutorial.
    2. Immettere adftutorial/dummy/output per il parametro sinkBlobContainer.
    3. Immettere un indirizzo di posta elettronica per receiver.
    4. Fare clic su Fine.

Monitorare l'esecuzione della pipeline non riuscita

  1. Per monitorare l'esecuzione della pipeline passare alla scheda Monitoraggio a sinistra. Viene visualizzata l'esecuzione della pipeline attivata manualmente in precedenza. Usare il pulsante Aggiorna per aggiornare l'elenco.

    Failure pipeline run

  2. Fare clic sul collegamento Errore per l'esecuzione della pipeline per visualizzare i dettagli dell'errore.

    Pipeline error

  3. Per visualizzare le esecuzioni attività associate a questa esecuzione della pipeline, fare clic sul primo collegamento nella colonna Azioni. Usare il pulsante Aggiorna per aggiornare l'elenco. Si noti che l'attività Copia nella pipeline ha avuto esito negativo. L'attività Web è riuscita a inviare il messaggio di posta elettronica di errore al destinatario specificato.

    Activity runs

  4. Fare clic sul collegamento Errore nella colonna Azioni per visualizzare informazioni dettagliate sull'errore.

    Activity run error

In questa esercitazione sono stati eseguiti i passaggi seguenti:

  • Creare una data factory.
  • Creare un servizio collegato Archiviazione di Azure
  • Creare un set di dati del BLOB di Azure
  • Creare una pipeline contenente un'attività di copia e un'attività Web
  • Inviare gli output delle attività alle attività successive
  • Utilizzare il passaggio di parametri e le variabili di sistema
  • Avviare un'esecuzione della pipeline
  • Monitorare le esecuzioni di pipeline e attività

È ora possibile passare alla sezione Concetti per altre informazioni su Azure Data Factory.