Copier des données et envoyer des notifications par e-mail en cas de réussite et d’échec
S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics
Conseil
Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !
Dans ce didacticiel, vous créez un pipeline Data Factory qui présente certaines des fonctionnalités de flux de contrôle. Ce pipeline est une simple copie depuis un conteneur Stockage Blob Azure vers un autre conteneur dans le même compte de stockage. Si l’activité de copie réussit, le pipeline envoie les détails de l’opération de copie réussie (par exemple, la quantité de données écrites) dans un e-mail d’avis de réussite. Si l’activité de copie échoue, le pipeline envoie les détails de l’échec de la copie (par exemple, le message d’erreur) dans un e-mail d’avis d’échec. Tout au long de ce didacticiel, vous allez apprendre à passer des paramètres.
Vue d’ensemble du scénario :
Dans ce tutoriel, vous allez effectuer les étapes suivantes :
- Créer une fabrique de données.
- Créer un service lié Stockage Azure
- Créer un jeu de données d’objet blob Azure
- Créer un pipeline contenant une activité de copie et une activité web
- Envoyer les sorties des activités aux activités ultérieures
- Utiliser des variables système et de passage de paramètres
- Démarrer une exécution de pipeline
- Surveiller les exécutions de pipeline et d’activité
Ce tutoriel utilise le portail Azure. Vous pouvez utiliser d’autres mécanismes pour interagir avec Azure Data Factory. Consultez « Guides de démarrage rapide » dans la table des matières.
Prérequis
- Abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Compte Stockage Azure. Vous utilisez le stockage blob comme magasins de données source. Si vous n’avez pas de compte de stockage Azure, consultez l’article Créer un compte de stockage pour découvrir comment en créer un.
- Azure SQL Database. Vous utilisez la base de données en tant que magasin de données récepteur. Si vous n’avez pas de base de données dans Azure SQL Database, consultez l’article Créer une base de données dans Azure SQL Database pour savoir comme en créer une.
Créer la table d’objets blob
Lancez le Bloc-notes. Copiez le texte suivant et enregistrez-le comme fichier input.txt sur votre disque.
John,Doe Jane,Doe
Utilisez des outils tels que l’ Explorateur de stockage Azure pour effectuer les étapes suivantes :
- Créer le conteneur adfv2branch.
- Créer le dossier entrée dans le conteneur adfv2branch.
- Télécharger le fichier input.txt au conteneur.
Créer des points de terminaison de flux de travail d’e-mail
Pour déclencher l’envoi d’un e-mail depuis le pipeline, vous utilisez Azure Logic Apps pour définir le workflow. Pour plus d’informations sur la création d’un workflow d’application logique, consultez Créer un exemple de workflow d’application logique Consommation.
Flux de travail d’un e-mail d’avis de réussite
Créez un workflow d’application logique Consommation nommé CopySuccessEmail
. Ajoutez le déclencheur de requête nommé Lors de la réception d’une requête HTTP, puis ajoutez l’action Office 365 Outlook nommée Envoyer un e-mail. Si vous y êtes invité, connectez-vous à votre compte Outlook d’Office 365.
Dans le déclencheur de requête, renseignez la zone Schéma JSON du corps de la demande à l’aide du code JSON suivant :
{
"properties": {
"dataFactoryName": {
"type": "string"
},
"message": {
"type": "string"
},
"pipelineName": {
"type": "string"
},
"receiver": {
"type": "string"
}
},
"type": "object"
}
Le déclencheur de requête dans le concepteur de workflow doit ressembler à l’image suivante :
Pour l’action Envoyer un e-mail, personnalisez le mode de mise en forme de l’e-mail en utilisant les propriétés passées dans le schéma JSON du corps de la requête. Voici un exemple :
Enregistrez le workflow. Prenez note de l’URL de votre requête HTTP Post pour votre flux de travail d’e-mail d’avis de réussite :
//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
Flux de travail d’un e-mail d’avis d’échec
Suivez les mêmes étapes pour créer un autre workflow d’application logique nommé CopyFailEmail
. Dans le déclencheur de requête, la valeur du Schéma JSON du corps de la demande est identique. Modifiez la mise en forme de votre e-mail, notamment Subject
, pour l’adapter à un avis d’échec. Voici un exemple :
Enregistrez le workflow. Prenez note de l’URL de votre requête HTTP Post pour votre flux de travail d’e-mail d’avis d’échec :
//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
Vous devez maintenant avoir deux URL de flux de travail :
//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
Créer une fabrique de données
Lancez le navigateur web Microsoft Edge ou Google Chrome. L’interface utilisateur de Data Factory n’est actuellement prise en charge que par les navigateurs web Microsoft Edge et Google Chrome.
Développez le menu situé en haut à gauche et sélectionnez Créer une ressource. Puis sélectionnez >Intégration>Data Factory :
Dans la page Nouvelle fabrique de données, entrez ADFTutorialDataFactory comme nom.
Le nom de la fabrique de données Azure doit être un nom global unique. Si l’erreur suivante s’affiche, changez le nom de la fabrique de données (par exemple, votrenomADFTutorialDataFactory), puis tentez de la recréer. Consultez l’article Data Factory - Règles d’affectation des noms pour savoir comment nommer les artefacts Data Factory.
Le nom de fabrique de données « ADFTutorialDataFactory » n’est pas disponible.
Sélectionnez l’abonnement Azure dans lequel vous voulez créer la fabrique de données.
Pour le groupe de ressources, effectuez l’une des opérations suivantes :
Sélectionnez Utiliser l’existant, puis sélectionnez un groupe de ressources existant dans la liste déroulante.
Sélectionnez Créer, puis entrez le nom d’un groupe de ressources.
Pour plus d’informations sur les groupes de ressources, consultez Utilisation des groupes de ressources pour gérer vos ressources Azure.
Sélectionnez V2 pour la version.
Sélectionnez l’emplacement de la fabrique de données. Seuls les emplacements pris en charge sont affichés dans la liste déroulante. Les magasins de données (Stockage Azure, Azure SQL Database, etc.) et les services de calcul (HDInsight, etc.) utilisés par la fabrique de données peuvent être proposés dans d’autres régions.
Sélectionnez Épingler au tableau de bord.
Cliquez sur Créer.
Une fois la création terminée, la page Data Factory s’affiche comme sur l’image.
Cliquez sur la vignette Ouvrir Azure Data Factory Studio pour lancer l’interface utilisateur d’Azure Data Factory dans un onglet distinct.
Créer un pipeline
Dans cette étape, vous allez créer un pipeline avec une activité de copie et deux activités web. Vous utilisez les fonctionnalités suivantes pour créer le pipeline :
- Paramètres du pipeline auxquels les jeux de données ont accès.
- Activité Web pour appeler des flux de travail Logic Apps pour envoyer des messages de réussite/échec.
- Connexion d’une activité à une autre activité (cas de réussite et échec)
- Utilisation de la sortie d’une activité en tant qu’entrée de l’activité suivante
Dans la page d’accueil de l’interface utilisateur Data Factory, cliquez sur la vignette Orchestrer.
Dans la fenêtre Propriétés pour le pipeline, basculez vers l’onglet Paramètres et utilisez le bouton Nouveau pour ajouter les trois paramètres suivants de type chaîne : sourceBlobContainer, sinkBlobContainer et récepteur.
- sourceBlobContainer - paramètre dans le pipeline consommé par le jeu de données d’objet blob source.
- sinkBlobContainer - paramètre dans le pipeline consommé par le jeu de données d’objet blob récepteur
- receiver - ce paramètre est utilisé par les deux activités Web dans le pipeline qui envoient des e-mails de réussite ou d’échec au récepteur dont l’adresse e-mail est spécifiée par ce paramètre.
Dans la boîte à outils Activités, recherchez Copy, puis faites glisser et déposez l’activité Copy vers la surface du concepteur de pipeline.
Sélectionnez l’activité Copy que vous avez fait glisser sur la surface du concepteur de pipeline. Dans la fenêtre Propriétés pour l’activité de copie en bas, basculez vers l’onglet Source, puis cliquez sur + Nouveau. Vous créez un jeu de données source pour l’activité de copie dans cette étape.
Dans la fenêtre Nouveau jeu de données, sélectionnez l’onglet Azure en haut, puis choisissez Stockage Blob Azure et sélectionnez Continuer.
Dans la fenêtre Sélectionner le format, choisissez DelimitedText et sélectionnez Continuer.
Vous voyez un nouvel onglet intitulé Définir les propriétés. Modifiez le nom du jeu de données à SourceBlobDataset. Sélectionnez la liste déroulante Service lié et choisissez +Nouveau pour créer un service lié à votre jeu de données source.
La fenêtre Nouveau service lié qui apparaît vous permet de renseigner les propriétés requises pour le service lié.
Dans la fenêtre Nouveau service lié, procédez comme suit :
- Entrez AzureStorageLinkedService pour Nom.
- Sélectionnez votre compte de stockage Azure pour le Nom du compte de stockage.
- Cliquez sur Créer.
Dans la fenêtre Définir les propriétés qui apparaît ensuite, sélectionnez Ouvrir ce jeu de données afin d’entrer une valeur paramétrisée pour le nom de fichier.
Saisissez
@pipeline().parameters.sourceBlobContainer
pour le dossier etemp.txt
pour le nom du fichier.Revenez à l’onglet pipeline (ou cliquez sur le pipeline dans l’arborescence de gauche), puis sélectionnez l’activité Copy sur le concepteur. Vérifiez que votre nouveau jeu de données est sélectionné comme jeu de données source.
Dans la fenêtre Propriétés, basculez vers l’onglet Récepteur, puis cliquez sur + Nouveau pour Jeu de données récepteur. Vous créez un jeu de données récepteur pour l’activité de copie dans cette étape d’une façon similaire à la création du jeu de données source.
Dans la fenêtre Nouveau jeu de données, sélectionnez Stockage Blob Azure, cliquez sur Continuer, sélectionnez à nouveau DelimitedText dans la fenêtre Sélectionner le format, puis cliquez à nouveau sur Continuer.
Sur la page Définir les propriétés du jeu de données, entrez SinkBlobDataset pour la propriété Name, puis sélectionnez AzureStorageLinkedService pour LinkedService.
Développez la section Avancé de la page de propriétés et sélectionnez Ouvrir ce jeu de données.
Sous l’onglet Connexion du jeu de données, modifiez le Chemin d’accès au fichier. Saisissez
@pipeline().parameters.sinkBlobContainer
pour le dossier et@concat(pipeline().RunId, '.txt')
pour le nom du fichier. L’expression utilise l’ID de l’exécution de pipeline actuelle comme nom de fichier. Pour obtenir la liste des variables système et expressions prises en charge, consultez Variables système et Langage d’expression.Revenez à l’onglet Pipeline, en haut. Entrez Web dans la zone de recherche, et faites glisser et déposez une activité Web vers la surface du concepteur de pipeline. Définissez le nom de l’activité sur SendSuccessEmailActivity. L’activité web permet d’appeler n’importe quel point de terminaison REST. Pour plus d’informations sur l’activité, consultez Activité web. Ce pipeline utilise une activité web pour appeler le flux de travail d’un e-mail Logic Apps.
Basculez vers l’onglet Paramètres à partir de l’onglet Général, et procédez comme suit :
Pour l’URL, spécifiez l’URL du flux de travail Logic Apps qui envoie l’e-mail de réussite.
Sélectionnez POST comme méthode.
Cliquez sur le lien + Ajouter un en-tête dans la section En-têtes.
Ajoutez un en-tête Content-Type et affectez-lui la valeur application/json.
Spécifiez le texte JSON suivant pour le corps.
{ "message": "@{activity('Copy1').output.dataWritten}", "dataFactoryName": "@{pipeline().DataFactory}", "pipelineName": "@{pipeline().Pipeline}", "receiver": "@pipeline().parameters.receiver" }
Le corps du message contient les propriétés suivantes :
Message - Passage de la valeur
@{activity('Copy1').output.dataWritten
. Accède à une propriété de l’activité de copie précédente et passe la valeur de dataWritten. Pour un échec, passez la sortie de l’erreur au lieu de@{activity('CopyBlobtoBlob').error.message
.Nom de Data Factory - Passage de la valeur
@{pipeline().DataFactory}
. Il s’agit d’une variable système, qui vous permet d’accéder au nom de la fabrique de données correspondante. Consultez l’article Variables système pour obtenir la liste des variables système.Nom du pipeline : Passage de la valeur
@{pipeline().Pipeline}
. Il s’agit également d’une variable système, qui vous permet d’accéder au nom du pipeline correspondant.Récepteur - Passage de la valeur "pipeline().parameters.receiver"). Accès aux paramètres de pipeline.
Connectez l’activité Copy à l’activité Web en faisant glisser le bouton de la case à cocher verte située en regard de l’activité Copy vers l’activité Web.
Faites glisser une autre activité Web à partir de la boîte à outils Activités vers la zone du concepteur de pipeline et configurez le nom comme SendFailureEmailActivity.
Basculez vers l’onglet Paramètres, et procédez comme suit :
Pour l’URL, spécifiez l’URL du flux de travail Logic Apps qui envoie l’e-mail d’échec.
Sélectionnez POST comme méthode.
Cliquez sur le lien + Ajouter un en-tête dans la section En-têtes.
Ajoutez un en-tête Content-Type et affectez-lui la valeur application/json.
Spécifiez le texte JSON suivant pour le corps.
{ "message": "@{activity('Copy1').error.message}", "dataFactoryName": "@{pipeline().DataFactory}", "pipelineName": "@{pipeline().Pipeline}", "receiver": "@pipeline().parameters.receiver" }
Sélectionnez le bouton X rouge à droite de l’activité Copy dans le concepteur de pipeline, puis faites-le glisser et déposez-le sur l’activité sendFailureEmailActivity que vous venez de créer.
Pour valider le pipeline, cliquez sur le bouton Valider dans la barre d’outils. Fermez la fenêtre Sortie de validation du pipeline en cliquant sur le bouton >>.
Pour publier les entités (jeux de données, pipelines, etc.) sur Data Factory, cliquez sur Publish All (Publier tout). Patientez jusqu’à voir le message Publication réussie.
Déclencher une exécution de pipeline qui réussit
Pour déclencher une exécution de pipeline, cliquez sur Déclencher dans la barre d’outils, puis sur Déclencher maintenant.
Dans la fenêtre Exécution de pipeline, procédez comme suit :
Entrez adftutorial/adfv2branch/input pour le paramètre sourceBlobContainer.
Entrez adftutorial/adfv2branch/output pour le paramètre sinkBlobContainer.
Entrez une adresse e-mail du récepteur.
Cliquez sur Terminer
Surveiller l’exécution de pipeline réussie
Pour surveiller l’exécution de pipeline, basculez vers l’onglet Surveiller sur la gauche. Vous voyez l’exécution de pipeline que vous avez déclenchée manuellement. Utilisez le bouton Actualiser pour actualiser la liste.
Pour voir les exécutions d’activité associées à l’exécution de ce pipeline, cliquez sur le premier lien dans la colonne Actions. Vous pouvez revenir à la vue précédente en cliquant sur Pipelines en haut. Utilisez le bouton Actualiser pour actualiser la liste.
Déclencher une exécution de pipeline qui échoue
Basculez vers l’onglet Modifier sur la gauche.
Pour déclencher une exécution de pipeline, cliquez sur Déclencher dans la barre d’outils, puis sur Déclencher maintenant.
Dans la fenêtre Exécution de pipeline, procédez comme suit :
- Entrez adftutorial/dummy/input pour le paramètre sourceBlobContainer. Assurez-vous que le dossier factice n’existe pas dans le conteneur adftutorial.
- Entrez adftutorial/dummy/output pour le paramètre sinkBlobContainer.
- Entrez une adresse e-mail du récepteur.
- Cliquez sur Terminer.
Surveiller l’exécution du pipeline qui a échoué
Pour surveiller l’exécution de pipeline, basculez vers l’onglet Surveiller sur la gauche. Vous voyez l’exécution de pipeline que vous avez déclenchée manuellement. Utilisez le bouton Actualiser pour actualiser la liste.
Cliquez sur le lien Erreur pour l’exécution de pipeline afin d’afficher des détails sur l’erreur de pipeline.
Pour voir les exécutions d’activité associées à l’exécution de ce pipeline, cliquez sur le premier lien dans la colonne Actions. Utilisez le bouton Actualiser pour actualiser la liste. Notez que l’activité de copie dans le pipeline a échoué. L’activité Web a réussi à envoyer l’e-mail d’échec au destinataire spécifié.
Cliquez sur le lien Erreur dans la colonne Actions afin d’afficher des détails sur l’erreur.
Contenu connexe
Dans ce tutoriel, vous avez effectué les étapes suivantes :
- Créer une fabrique de données.
- Créer un service lié Stockage Azure
- Créer un jeu de données d’objet blob Azure
- Créer un pipeline qui contient une activité de copie et une activité web
- Envoyer les sorties des activités aux activités ultérieures
- Utiliser des variables système et de passage de paramètres
- Démarrer une exécution de pipeline
- Surveiller les exécutions de pipeline et d’activité
Vous pouvez maintenant passer à la section Concepts pour plus d’informations sur Azure Data Factory.