Automatiser l’intégration continue à l’aide des versions d’Azure Pipelines

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 !

Vous trouverez ci-après un guide de configuration d’une mise en production Azure Pipelines qui automatise le déploiement d’une fabrique de données dans plusieurs environnements.

Spécifications

Configurer une version d’Azure Pipelines

  1. Dans Azure DevOps, ouvrez le projet configuré avec votre fabrique de données.

  2. Sur le côté gauche de la page, sélectionnez Pipelines, puis sélectionnez Versions.

    Select Pipelines, Releases

  3. Sélectionnez Nouveau pipeline ou, si vous avez des pipelines existants, sélectionnez Nouveau puis Nouveau pipeline de mise en production.

  4. Sélectionnez le modèle Tâche vide.

    Select Empty job

  5. Dans la zone Nom de la phase, entrez le nom de votre environnement.

  6. Sélectionnez Ajouter un artefact, puis choisissez le dépôt Git configuré avec votre fabrique de données de développement. Sélectionnez la branche de publication du dépôt comme branche par défaut. Par défaut, cette branche de publication est adf_publish. Pour Version par défaut, sélectionnez La dernière de la branche par défaut.

    Add an artifact

  7. Ajoutez une tâche de déploiement Azure Resource Manager :

    a. Dans la vue des phases, sélectionnez Afficher les tâches de phase.

    Stage view

    b. Créer une tâche. Recherchez Déploiement de modèles ARM, puis sélectionnez Ajouter.

    c. Dans la tâche Déploiement, sélectionnez l’abonnement, le groupe de ressources et l’emplacement de la fabrique de données cible. Fournissez les informations d’identification si nécessaire.

    d. Dans la liste Actions, sélectionnez Créer ou mettre à jour un groupe de ressources.

    e. Sélectionnez le bouton de sélection ( ) en regard de la zone Modèle. Recherchez le modèle Azure Resource Manager généré dans votre branche de publication du dépôt Git configuré. Recherchez le fichier ARMTemplateForFactory.json dans le dossier <FactoryName> de la branche adf_publish.

    f. Sélectionnez à côté de la zone Paramètres du modèle pour choisir le fichier de paramètres. Recherchez le fichier ARMTemplateParametersForFactory.json dans le dossier >FactoryName< de la branche adf_publish.

    g. Sélectionnez à côté de la zone Remplacer les paramètres du modèle, puis entrez les valeurs de paramètre souhaitées pour la fabrique de données cible. Pour les informations d’identification provenant d’Azure Key Vault, entrez le nom du secret entre guillemets doubles. Par exemple, si le nom du secret est cred1, entrez "$(cred1)" pour cette valeur.

    h. Sélectionnez Incrémentiel comme Mode de déploiement.

    Avertissement

    En mode de déploiement complet, les ressources présentes dans le groupe de ressources mais pas spécifiées dans le modèle Resource Manager sont supprimées. Pour plus d’informations, consultez Modes de déploiement Azure Resource Manager.

    Data Factory Prod Deployment

  8. Enregistrez le pipeline de mise en production.

  9. Pour déclencher une mise en production, sélectionnez Créer une mise en production. Pour automatiser la création des mises en production, consultez les déclencheurs de mise en production Azure DevOps.

    Select Create release

Important

Dans les scénarios d’intégration et de livraison continues, le type de runtime d’intégration (IR) doit être le même dans les différents environnements. Par exemple, si vous avez un runtime d’intégration auto-hébergé dans l’environnement de développement, le même runtime d’intégration doit aussi être de type auto-hébergé dans les autres environnements (test, production). De même, si vous partagez des runtimes d’intégration dans plusieurs phases, vous devez les configurer comme étant liés et auto-hébergés dans tous les environnements (développement, test, production).

Obtenez les secrets à partir du coffre Azure Key Vault

Si vous avez des secrets à transmettre dans un modèle Azure Resource Manager, nous vous recommandons d’utiliser Azure Key Vault avec la version Azure Pipelines.

Il existe deux moyens de gérer les secrets :

  • Ajoutez les secrets au fichier de paramètres. Pour plus d’informations, consultez Use Azure Key Vault to pass secure parameter value during deployment (Utiliser Azure Key Vault pour transmettre une valeur de paramètre sécurisée lors du déploiement).

    Créez une copie du fichier de paramètres qui sera chargée dans la branche de publication. Définissez les valeurs des paramètres que vous souhaitez obtenir à partir du coffre de clés avec le format suivant :

    {
        "parameters": {
            "azureSqlReportingDbPassword": {
                "reference": {
                    "keyVault": {
                        "id": "/subscriptions/<subId>/resourceGroups/<resourcegroupId> /providers/Microsoft.KeyVault/vaults/<vault-name> "
                    },
                    "secretName": " < secret - name > "
                }
            }
        }
    }
    

    Lorsque vous utilisez cette méthode, le secret est automatiquement extrait du coffre de clés.

    Le fichier de paramètres doit également être dans la branche de publication.

  • Ajoutez une tâche Azure Key Vault avant la tâche de déploiement d’Azure Resource Manager décrite dans la section précédente :

    1. Dans l’onglet Tâches, créez une nouvelle tâche. Recherchez Azure Key Vault et ajoutez-le.

    2. Dans la tâche Key Vault, sélectionnez l’abonnement dans lequel vous avez créé le coffre de clés. Fournissez les informations d’identification si nécessaire, puis sélectionnez le coffre de clés.

    Add a Key Vault task

Accorder des autorisations à l’agent Azure Pipelines

La tâche Azure Key Vault peut échouer avec une erreur d’accès refusé si les autorisations appropriées ne sont pas définies. Téléchargez les journaux de la version, puis recherchez le fichier .ps1 contenant la commande pour accorder des autorisations à l’agent Azure Pipelines. Vous pouvez exécuter directement la commande. Vous pouvez aussi copier l’ID du principal à partir du fichier et ajouter manuellement la stratégie d’accès dans le Portail Azure. Get et List sont les autorisations minimales requises.

Mise à jour des déclencheurs actifs

Installez les modules Azure PowerShell les plus récents en suivant les instructions décrites dans Comment installer et configurer Azure PowerShell.

Avertissement

Si vous n’utilisez pas les dernières versions des modules PowerShell et Data Factory, vous risquez de rencontrer des erreurs de désérialisation lors de l’exécution des commandes.

Le déploiement peut échouer si vous tentez de mettre à jour les déclencheurs actifs. Pour mettre à jour les déclencheurs actifs, vous devez les arrêter manuellement puis les redémarrer après le déploiement. Vous pouvez le faire à l’aide d’une tâche Azure PowerShell :

  1. Dans l’onglet Tâches de la version, ajoutez une tâche Azure Powershell. Choisissez comme version de la tâche la dernière version d’Azure PowerShell.

  2. Sélectionnez l’abonnement dans lequel se trouve votre fabrique.

  3. Sélectionnez Chemin d’accès au fichier de script comme type de script. Pour cela, vous devez enregistrer votre script PowerShell dans votre référentiel. Le script PowerShell suivant peut être utilisé pour arrêter des déclencheurs :

    $triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName
    
    $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
    

Vous pouvez suivre des étapes similaires (avec la fonction Start-AzDataFactoryV2Trigger) pour redémarrer les déclencheurs après le déploiement.

L'équipe de la Data Factory a fourni un exemple de script de pré et post-déploiement.

Notes

Utilisez le PrePostDeploymentScript.Ver2.ps1 si vous souhaitez désactiver/activer uniquement les déclencheurs qui ont été modifiés au lieu d’activer/désactiver tous les déclencheurs pendant CI/CD.

Avertissement

Veillez à utiliser PowerShell Core dans la tâche ADO pour exécuter le script