Automatiser votre pipeline de déploiement en utilisant des API et Azure DevOps

L'outil de pipelines de déploiement de Microsoft Fabric permet aux équipes d'informatique décisionnelle de créer un processus de publication efficace et réutilisable pour leur contenu Fabric.

Pour bénéficier de l’intégration continue et de la livraison continue (CI/CD) de contenu, de nombreuses organisations utilisent des outils d’automatisation, notamment Azure DevOps. Les organisations qui utilisent Azure DevOps peuvent utiliser l'extension des outils d'automatisation Power BI, qui prend en charge de nombreuses opérations d'API de pipelines de déploiement.

Vous pouvez utiliser les API REST Power BI des pipelines de déploiement pour intégrer Fabric dans le processus d’automatisation de votre organisation. Voici quelques exemples de ce qu’il est possible de faire en utilisant les API :

  • Gérer les pipelines du début à la fin, ce qui inclut la création d’un pipeline, l’affectation d’un espace de travail à n’importe quelle phase, ainsi que le déploiement et la suppression du pipeline.

  • Affecter des utilisateurs à un pipeline et désaffecter des utilisateurs d’un pipeline.

  • Intégrez Fabric dans des outils DevOps familiers tels qu'Azure DevOps ou GitHub Actions.

  • Planifier des déploiements de pipeline pour qu’ils se déclenchent automatiquement à un moment donné.

  • Déployer plusieurs pipelines en même temps.

  • Mettre en cascade des déploiements de pipeline. Si vous avez un contenu connecté à des pipelines, vous pouvez faire en sorte que certains pipelines soient déployés avant d’autres.

Fonctions des API des pipelines de déploiement

Remarque

Les API des pipelines de déploiement ne fonctionnent actuellement que pour les éléments Power BI.

Les API REST Power BI de pipelines de déploiement vous permettent d’effectuer les opérations suivantes :

Quels déploiements sont pris en charge par les API ?

Les API prennent en charge les types de déploiement suivants :

  • Déployer tout : un seul appel d’API qui déploie tout le contenu de l’espace de travail vers la phase suivante du pipeline. Pour cette opération, utilisez l’API Déployer tout.

  • Déploiement sélectif – Déploie uniquement des éléments spécifiques, tels que des rapports ou des tableaux de bord, dans le pipeline. Pour cette opération, utilisez l’API Déploiement sélectif.

  • Déploiement en arrière – Déploie de nouveaux éléments à l'étape précédente. Le déploiement en amont ne fonctionne que si les éléments qui sont déployés n'existent pas déjà à l'étape cible. Pour cette opération, utilisez les API Déployer tout ou Déploiement sélectif avec isBackwardDeployment défini sur True.

  • Mettre à jour l’application : dans le cadre de l’appel de l’API de déploiement, vous pouvez mettre à jour le contenu de l’application associée à cette phase. Les éléments mis à jour sont automatiquement disponibles pour vos utilisateurs finaux, une fois le déploiement terminé. Pour cette opération, utilisez les API Déployer tout ou Déploiement sélectif avec PipelineUpdateAppSettings.

Avant de commencer

Avant d’utiliser les API de pipelines de déploiement, vérifiez que vous disposez des éléments suivants :

Intégrer votre pipeline à Azure DevOps

Pour automatiser les processus de déploiement à partir de votre pipeline de versions dans Azure DevOps, utilisez l'une de ces méthodes :

  • PowerShell – Le script se connecte à Fabric à l'aide d'un principal de service ou d'un utilisateur.

  • Outils d’automation Power BI - Cette extension fonctionne avec un principal de service ou un utilisateur.

Vous pouvez aussi utiliser d’autres appels d’API REST Power BI pour effectuer des opérations connexes, comme importer un .pbix dans le pipeline ou mettre à jour des sources de données et des paramètres.

Utiliser l’extension des outils d’automatisation Power BI

L’extension d’outils d’automatisation Power BI sont une extension Azure DevOps open source qui fournit une gamme d’opérations de pipelines de déploiement pouvant être effectuées dans Azure DevOps. Elle élimine le besoin d’API ou de scripts pour gérer les pipelines. Chaque opération peut être utilisée individuellement pour effectuer une tâche telle que la création d’un pipeline. Des opérations peuvent être utilisées avec d’autres dans un pipeline Azure DevOps pour créer un scénario plus complexe comme la création d’un pipeline, l’affectation d’un espace de travail au pipeline, l’ajout d’utilisateurs et le déploiement.

Après avoir ajouté l’extension d’outils d’automatisation Power BI à DevOps, vous devez créer une connexion de service. Les connexions suivantes sont disponibles :

  • Principal de service (recommandé) - Cette connexion s’authentifie avec un principal de service et demande aux applications Microsoft Entra un secret et un ID d’application. Lorsque vous utilisez cette option, vérifiez que les paramètres d'administration de service pour le principal de service sont activés.

  • Nom d’utilisateur et mot de passe – Configuré en tant que connexion de service générique avec un nom d’utilisateur et un mot de passe. Cette méthode de connexion ne prend pas en charge l’authentification multifacteur. Nous vous recommandons d’utiliser la méthode de connexion du principal de service, car elle ne nécessite pas de stockage des informations d’identification utilisateur sur Azure DevOps.

Notes

L’extension des outils d’automatisation Power BI utilise une connexion de service Azure DevOps pour stocker les informations d’identification. Pour plus d’informations, consultez Comment nous stockons vos informations d’identification pour Azure DevOps Services.

Une fois que vous avez activé une connexion de service pour vos outils d’automatisation Power BI Azure DevOps, vous pouvez créer des tâches de pipeline. L’extension comprend les tâches de pipeline de déploiement suivantes :

  • Créer un pipeline

  • Attribuer un espace de travail à une phase de pipeline

  • Ajouter un utilisateur à un pipeline de déploiement

  • Ajouter un utilisateur à un espace de travail

  • Déployer du contenu dans un pipeline de déploiement

  • Supprimer un espace de travail d’un pipeline de déploiement

  • Supprimer un pipeline

Accéder aux exemples PowerShell

Vous pouvez utiliser les scripts PowerShell suivants pour comprendre comment exécuter plusieurs processus d’automatisation. Pour visualiser ou copier le texte d’un exemple PowerShell, utilisez les liens fournis dans cette section.

Vous pouvez aussi télécharger l’intégralité du dossier GitHub PowerBI-Developer-Samples.

Exemple PowerShell

Cette section décrit un exemple de script PowerShell qui déploie un modèle sémantique, un rapport et un tableau de bord, depuis la phase de développement jusqu’à la phase de test. Le script vérifie ensuite si le déploiement a réussi.

Pour exécuter un script PowerShell qui effectue un déploiement, vous avez besoin des composants suivants. Vous pouvez ajouter un ou plusieurs de ces composants dans des tâches de vos phases du pipeline Azure.

  1. S'identifier – Avant de pouvoir déployer votre contenu, vous devez vous connecter à Fabric à l'aide d'un principal de service ou d'un utilisateur. Utilisez la commande Connect-PowerBIServiceAccount pour vous connecter.

  2. Construisez le corps de votre requête – Dans cette partie du script, vous spécifiez les éléments (tels que les rapports et les tableaux de bord) que vous déployez.

    $body = @{ 
        sourceStageOrder = 0 # The order of the source stage. Development (0), Test (1).   
        datasets = @(
            @{sourceId = "Insert your dataset ID here" }
        )      
        reports = @(
            @{sourceId = "Insert your report ID here" }
        )            
        dashboards = @(
            @{sourceId = "Insert your dashboard ID here" }
        )
    
        options = @{
            # Allows creating new item if needed on the Test stage workspace
            allowCreateArtifact = $TRUE
    
            # Allows overwriting existing item if needed on the Test stage workspace
            allowOverwriteArtifact = $TRUE
        }
    } | ConvertTo-Json
    
  3. Déployer : ici, vous effectuez le déploiement.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (Facultatif) Notification d’achèvement du déploiement : comme l’API de déploiement est asynchrone, vous pouvez programmer le script pour vous avertir quand le déploiement est terminé.

    $url =  "pipelines/{0}/Operations/{1}" -f "Insert you pipeline ID here",$deployResult.id
    $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json    
    while($operation.Status -eq "NotStarted" -or $operation.Status -eq "Executing")
    {
        # Sleep for 5 seconds
        Start-Sleep -s 5
        $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
    }
    

Considérations et limitations

  • Le déploiement à l'aide d'API est soumis aux mêmes limitations que l'interface utilisateur des pipelines de déploiement.

  • Un principal de service ne peut pas configurer des informations d’identification OAuth. Une fois que vous avez déployé les nouveaux éléments, le principal de service connecté devient le propriétaire de tous les modèles sémantiques et rapports paginés déployés. Dans ce cas, une actualisation ne peut pas être effectuée.

  • Le déploiement de flux de données à l’aide d’un principal de service n’est pas pris en charge.

  • Le nombre maximal d'éléments pouvant être déployés dans un seul déploiement est de 300.

  • Les API des pipelines de déploiement ne prennent actuellement en charge que les éléments Power BI.

  • La création d'un pipeline personnalisé de 2 à 10 étapes est actuellement prise en charge uniquement via l'interface utilisateur.