Share via


Extension Azure DevOps SQL Server Integration Services (SSIS) DevOps Tools

L’extension SSIS DevOps Tools est disponible dans la Place de Marché Azure DevOps. SSIS DevOps prend en charge Azure DevOps Services, Azure DevOps Server 2019 et versions ultérieures.

Si vous n’avez pas d’organisation Azure DevOps, vous devez tout d’abord vous inscrire à Azure Pipelines, puis ajouter l’extension SSIS DevOps Tools en suivant ces étapes.

SSIS DevOps Tools inclut la tâche de génération SSIS, la tâche de fin de déploiement SSIS et la tâche de configuration du catalogue SSIS.

  • La tâche de génération SSIS prend en charge la génération de fichiers dtproj dans un modèle de déploiement de projet ou de package.

  • La tâche de déploiement SSIS prend en charge le déploiement d’un ou plusieurs fichiers ispac dans un catalogue SSIS local et un runtime d’intégration Azure-SSIS ou de fichiers SSISDeploymentManifest et des fichiers associés dans un partage de fichiers Azure ou local.

  • La tâche de configuration du catalogue SSIS prend en charge la configuration des éléments dossier/projet/environnement du catalogue SSIS avec un fichier de configuration au format JSON. Cette tâche prend en charge les scénarios suivants :

    • Dossier
      • Créer un dossier.
      • Mettre à jour la description d’un dossier.
    • Projet
      • Configurer la valeur des paramètres (la valeur littérale et la valeur référencée sont prises en charge).
      • Ajouter des références d’environnement.
    • Environnement
      • Créer un environnement.
      • Mettre à jour la description d’un environnement.
      • Créer ou mettre à jour une variable d’environnement.

Tâche de génération SSIS

build task

Propriétés

Chemin du projet

Chemin du fichier ou dossier de projet à générer. Si un chemin de dossier est spécifié, la tâche de génération SSIS recherchera tous les fichiers dtproj de manière récursive dans ce dossier et les générera tous.

Le chemin de projet ne peut pas être vide, définissez-le sur . pour effectuer la génération à partir du dossier racine du dépôt.

Configuration du projet

Nom de la configuration de projet à utiliser pour la génération. S’il n’est pas spécifié, il s’agit, par défaut, de la première configuration de projet définie dans chaque fichier dtproj.

Chemin de sortie

Chemin d’un dossier distinct où seront enregistrés les résultats de la génération. Ceux-ci peuvent être publiés comme artefact de build à l’aide de la tâche de publication d’artefacts de build.

Limitations et problèmes connus

  • La tâche de génération SSIS s’appuie sur Visual Studio et le concepteur SSIS (obligatoire avec les agents de build). Ainsi, pour exécuter la tâche de génération SSIS dans le pipeline :

    • pour les agents hébergés par Microsoft, vous devez choisir une image disponible qui inclut l’extension Visual Studio et SQL Server Integration Services, par exemple windows-2022. Pour plus d’informations, reportez-vous à la documentation des agents hébergés par Microsoft pour les logiciels inclus dans les images disponibles.
    • Pour les agents auto-hébergés, installer Visual Studio et le concepteur SSIS (soit VS2022 + extension SSIS Projects, soit VS2019 + extension SSIS Projects) sur les agents auto-hébergés.
  • Pour générer des projets SSIS à l’aide de composants prêts à l’emploi (quels qu’ils soient, y compris le Feature Pack SSIS Azure ou d’autres composants tiers), veillez à ce que ces composants soient installés sur l’ordinateur sur lequel s’exécute l’agent de pipeline. Pour l’agent hébergé par Microsoft, l’utilisateur peut ajouter une tâche de script PowerShell ou une tâche de script de ligne de commande afin de télécharger et d’installer les composants avant l’exécution de la tâche de génération SSIS. Voici l’exemple de script PowerShell permettant d’installer Azure Feature Pack :

wget -Uri https://download.microsoft.com/download/E/E/0/EE0CB6A0-4105-466D-A7CA-5E39FA9AB128/SsisAzureFeaturePack_2017_x86.msi -OutFile AFP.msi

start -Wait -FilePath msiexec -Args "/i AFP.msi /quiet /l* log.txt"

cat log.txt
  • Les niveaux de protection EncryptSensitiveWithPassword et EncryptAllWithPassword ne sont pas pris en charge par la tâche de génération SSIS. Veillez à ce qu’aucun des projets SSIS du code base n’utilise ces deux niveaux de protection. Sinon, la tâche de génération SSIS cessera de répondre et dépassera le délai d’attente pendant l’exécution.

Tâche de génération SSIS version 1.*

Améliorations dans la version 1.* :

  • Suppression de la dépendance sur Visual Studio et le concepteur SSIS. La tâche de génération peut s’exécuter sur un agent hébergé par Microsoft ou un agent auto-hébergé avec le système d’exploitation Windows et .NET Framework 4.6.2 ou ultérieur.

  • Il n’est pas nécessaire d’installer les composants prédéfinis.

  • Prise en charge du niveau de protection EncryptionWithPassword et EncryptionAllWithPassword.

Limitations et problèmes connus

  • La tâche de génération SSIS version 1.* ne prend pas en charge la génération d'un projet SSIS contenant un package SSIS avec signature numérique.

Propriétés de la version 1.* uniquement

Mot de passe du projet

Mot de passe du projet SSIS et de ses packages. Cet argument n’est valide que si le niveau de protection du projet SSIS et des packages est EncryptSensitiveWithPassword ou EncryptAllWithPassword. Dans le modèle de déploiement de package, tous les packages doivent partager le même mot de passe que celui spécifié par cet argument.

Supprimer les données sensibles

Permet de convertir le niveau de protection du projet SSIS en DontSaveSensitve si cette valeur est true. Si le niveau de protection est EncryptSensitiveWithPassword ou EncryptAllWithPassword, l’argument Project Password doit être défini correctement. Cette option n’est valide que pour le modèle de déploiement de projet.

Tâche de déploiement SSIS

deploy task

Propriétés

Chemin source

Chemin des fichiers ISPAC ou SSISDeploymentManifest sources que vous souhaitez déployer. Il peut s’agir d’un chemin de dossier ou de fichier.

Type de destination

Type de la destination. Actuellement, la tâche de déploiement SSIS prend en charge deux types :

  • Système de fichiers : les fichiers SSISDeploymentManifest et les fichiers associés sont déployés dans un système de fichiers spécifié. Les partages de fichiers locaux et Azure sont pris en charge.
  • SSISDB : les fichiers ISPAC sont déployés dans un catalogue SSIS spécifié, qui peut être hébergé sur un serveur SQL Server local ou un runtime d’intégration Azure-SSIS.

Serveur de destination

Nom du moteur de base de données de destination. Il peut s’agir du nom d’une instance SQL Server locale, Azure SQL Database ou Azure SQL Managed Instance. Cette propriété est visible uniquement si le type de destination est SSISDB.

Chemin de destination

Chemin du dossier de destination dans lequel le fichier source sera déployé. Par exemple :

  • /SSISDB/<folderName>
  • \\<machineName>\<shareFolderName>\<optionalSubfolderName>

La tâche de déploiement SSIS crée le dossier et le sous-dossier s’ils n’existent pas.

Type d'authentification

Type d’authentification utilisé pour l’accès au serveur de destination spécifié. Cette propriété est visible uniquement si le type de destination est SSISDB. En général, les types d’authentification suivants sont pris en charge :

  • Authentification Windows
  • l’authentification SQL Server
  • Active Directory - Authentification par mot de passe
  • Active Directory - Authentification intégrée

Cependant, la prise en charge d’un type d’authentification spécifique dépend du type de serveur de destination et du type d’agent. Reportez-vous au tableau de prise en charge détaillé ci-dessous.

Type de serveur de destination Agent hébergé par Microsoft Agent autohébergé
Serveur SQL Server local ou machine virtuelle N/A Authentification Windows
Azure SQL Authentification SQL Server
Active Directory - Authentification par mot de passe
Authentification SQL Server
Active Directory – Authentification par mot de passe
Active Directory - Authentification intégrée

Nom de domaine

Nom de domaine utilisé pour l’accès au système de fichiers spécifié. Cette propriété est visible uniquement si le type de destination est Système de fichiers. Vous pouvez la laisser vide si le compte d’utilisateur utilisé pour l’exécution de l’agent autohébergé dispose d’un accès en lecture/écriture au chemin de destination spécifié.

Nom d’utilisateur

Nom d’utilisateur utilisé pour l’accès à la base de données SSISDB ou au système de fichiers spécifié. Cette propriété est visible si le type de destination est Système de fichiers ou si le type d’authentification est Authentification SQL Server ou Active Directory - Authentification par mot de passe. Vous pouvez la laisser vide si le type de destination est Système de fichiers et si le compte d’utilisateur utilisé pour l’exécution de l’agent autohébergé dispose d’un accès en lecture/écriture au chemin de destination spécifié.

Mot de passe

Mot de passe utilisé pour l’accès à la base de données SSISDB ou au système de fichiers spécifié. Cette propriété est visible si le type de destination est Système de fichiers ou si le type d’authentification est Authentification SQL Server ou Active Directory - Authentification par mot de passe. Vous pouvez la laisser vide si le type de destination est Système de fichiers et si le compte d’utilisateur utilisé pour l’exécution de l’agent autohébergé dispose d’un accès en lecture/écriture au chemin de destination spécifié.

Remplacer les projets ou fichiers SSISDeploymentManifest existants portant le même nom

Indique si les projets ou fichiers SSISDeploymentManifest existants portant le même nom doivent être remplacés. Si vous sélectionnez « Non », la tâche de déploiement SSIS ignorera le déploiement de ces projets ou fichiers.

Continuer le déploiement si une erreur se produit

Indique si le déploiement des projets ou des fichiers restants doit continuer quand une erreur se produit. Si vous sélectionnez « Non », la tâche de déploiement SSIS s’arrêtera immédiatement si une erreur se produit.

Limitations et problèmes connus

Actuellement, la tâche de déploiement SSIS ne prend pas en charge les scénarios suivants :

  • Configuration de l’environnement dans le catalogue SSIS
  • Déploiement de fichiers ISPAC sur Azure SQL Server ou Azure SQL Managed Instance, qui autorisent uniquement l’authentification multifacteur
  • Déploiement de packages dans msdb ou le magasin de packages SSIS
  • Si vous installez l’extension des outils DevOps SSIS dans Azure DevOps Server, vous pouvez voir le message « La taille du package d’extension dépasse la taille maximale du package ». Pour résoudre le problème, suivez ces étapes :
    1. Connectez-vous à l’instance SQL Server locale et sélectionnez la base de données Gallery_Configuration.
    2. Exécutez la requête INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50). Remplacez 50 par un nombre plus élevé si l’extension est supérieure à 50 Mo.
    3. Une fois que vous avez exécuté la requête, redémarrez Internet Information Services. Réessayez de charger l’extension.
    4. Si l’erreur persiste, contactez l’équipe du support technique SQL Server.

Tâche de déploiement SSIS version 1.*

Améliorations dans la version 1.* :

  • Prise en charge du niveau de protection EncryptionWithPassword et EncryptionAllWithPassword.

Propriétés de la version 1.* uniquement

Mot de passe du projet

Mot de passe servant à déchiffrer les fichiers ISPAC ou DTSX. Cet argument n’est valide que si le niveau de protection est EncryptSensitiveWithPassword ou EncryptAllWithPassword.

Tâche de configuration du catalogue SSIS

catalog configuration task

Propriétés

Source du fichier de configuration

Source du fichier JSON utilisé pour la configuration du catalogue SSIS. Les options possibles sont « Chemin fichier » ou « Inline ».

Pour plus de détails, consultez la section Définir le schéma JSON de configuration :

Chemin du fichier JSON de configuration

Chemin du fichier JSON utilisé pour la configuration du catalogue SSIS. Cette propriété est visible uniquement si vous sélectionnez « Chemin fichier » comme source du fichier de configuration.

Pour utiliser des variables de pipeline dans le fichier JSON de configuration, vous devez ajouter une tâche de transformation de fichier avant cette tâche, ce qui a pour effet de remplacer les valeurs de configuration par les variables de pipeline. Pour plus d’informations, consultez la section Substitution de variables JSON.

Fichier JSON inline de configuration

Fichier JSON inline utilisé pour la configuration du catalogue SSIS. Cette propriété est visible uniquement si vous sélectionnez « Inline » comme source du fichier de configuration. Les variables de pipeline peuvent être utilisées directement.

Restaurer la configuration après une erreur

Détermine si la configuration effectuée par cette tâche doit être annulée en cas d’erreur.

Serveur cible

Nom du Moteur de base de données cible. Il peut s’agir du nom d’une instance SQL Server locale, Azure SQL Database ou Azure SQL Managed Instance.

Type d'authentification

Type d’authentification utilisé pour l’accès au serveur cible spécifié. En général, les types d’authentification suivants sont pris en charge :

  • Authentification Windows
  • l’authentification SQL Server
  • Active Directory - Authentification par mot de passe
  • Active Directory - Authentification intégrée

Cependant, la prise en charge d’un type d’authentification spécifique dépend du type de serveur de destination et du type d’agent. Reportez-vous au tableau de prise en charge détaillé ci-dessous.

Type de serveur de destination Agent hébergé par Microsoft Agent autohébergé
Serveur SQL Server local ou machine virtuelle N/A Authentification Windows
Azure SQL Authentification SQL Server
Active Directory - Authentification par mot de passe
Authentification SQL Server
Active Directory – Authentification par mot de passe
Active Directory - Authentification intégrée

Nom d’utilisateur

Nom d’utilisateur à utiliser pour l’accès au serveur SQL Server cible. Cette propriété est visible uniquement si le type d’authentification est Authentification SQL Server ou Active Directory - Authentification par mot de passe.

Mot de passe

Mot de passe à utiliser pour l’accès au serveur SQL Server cible. Cette propriété est visible uniquement si le type d’authentification est Authentification SQL Server ou Active Directory - Authentification par mot de passe.

Définir le schéma JSON de configuration

Le schéma JSON de configuration comporte trois couches :

  • catalogue
  • dossier
  • projet et environnement

catalog configuration schema

Exemple de fichier JSON de configuration inline

{
  "folders": [
    {
      "name": "devopsdemo",
      "description": "devops demo folder",
      "projects": [
        {
          "name": "catalog devops",
          "parameters": [
            {
              "name": "password",
              "container": "Package.dtsx",
              "value": "passwd",
              "valueType": "referenced"
            },
            {
              "name": "serverName",
              "container": "catalog devops",
              "value": "localhost",
              "valueType": "literal"
            }
          ],
          "references": [
            {
              "environmentName": "test",
              "environmentFolder": "devopsdemo"
            },
            {
              "environmentName": "test",
              "environmentFolder": "."
            }
          ]
        }
      ],
      "environments": [
        {
          "name": "test",
          "description": "test",
          "variables": [
            {
              "name": "passwd",
              "type": "string",
              "description": "",
              "value": "$(SSISDBServerAdminPassword)",
              "sensitive": true
            },
            {
              "name": "serverName",
              "type": "string",
              "description": "",
              "value": "$(TargetServerName)",
              "sensitive": false
            }
          ]
        }
      ]
    }
  ]
}

Schéma JSON

Attributs de catalogue
Propriété Description Notes
dossiers Tableau d’objets dossier. Chaque objet contient des informations de configuration pour un dossier du catalogue. Consultez Attributs de dossier pour voir le schéma d’un objet dossier.
Attributs de dossier
Propriété Description Notes
name Nom du dossier de catalogue. Le dossier est créé s’il n’existe pas.
description Description du dossier de catalogue. La valeur Null est ignorée.
projects Tableau d’objets projet. Chaque objet contient des informations de configuration pour un projet. Consultez Attributs de projet pour voir le schéma d’un objet projet.
environments Tableau d’objets environnement. Chaque objet contient des informations de configuration pour un environnement. Consultez Attributs d’environnement pour voir le schéma d’un objet environnement.
Attributs de projet
Propriété Description Notes
name Nom du projet. L’objet projet est ignoré si le projet n’existe pas dans le dossier parent.
parameters Tableau d'objets de paramètre. Chaque objet contient des informations de configuration pour un paramètre. Consultez Attributs de paramètre pour voir le schéma d’un objet paramètre.
references Tableau d’objets référence. Chaque objet représente une référence d’environnement pour le projet cible. Consultez Attributs de référence pour voir le schéma d’un objet référence.
Attributs de paramètre
Propriété Description Notes
name Nom du paramètre.
  • Le paramètre peut être un paramètre de projet ou un paramètre de package.
  • Le paramètre est ignoré s’il n’existe pas.
  • Si le paramètre est une propriété du gestionnaire de connexions, le nom doit être au format CM.<Nom du gestionnaire de connexions>.<Nom de la propriété>.
  • conteneur Conteneur du paramètre.
  • Si le paramètre est un paramètre de projet, le conteneur doit être le nom du projet.
  • S’il s’agit d’un paramètre de package, le conteneur doit être le nom du package avec l’extension .dtsx.
  • value Valeur du paramètre.
  • Quand valueType est défini sur referenced : la valeur est une référence à une variable d’environnement avec le type string.
  • Quand valueType est literal : cet attribut prend en charge toutes les valeurs JSON de type boolean, number ou string valides.
  • La valeur est convertie au type du paramètre cible. Une erreur se produit si la valeur ne peut pas être convertie.
  • La valeur Null n’est pas valide. La tâche ignore cet objet paramètre et génère un avertissement.
  • valueType Type de la valeur du paramètre. Les types valides sont :
    literal (littéral) : l’attribut value représente une valeur littérale.
    referenced (référencé) : l’attribut value représente une référence à une variable d’environnement.
    Attributs de référence
    Propriété Description Notes
    environmentFolder Nom du dossier de l’environnement. Le dossier est créé s’il n’existe pas.
    La valeur peut être « . », qui représente le dossier parent du projet et référence l’environnement.
    environmentName Nom de l’environnement référencé. L’environnement spécifié est créé s’il n’existe pas.
    Attributs d’environnement
    Propriété Description Notes
    name Nom de l’environnement. L’environnement est créé s’il n’existe pas.
    description Description de l’environnement. La valeur Null est ignorée.
    variables Tableau d’objets variable. Chaque objet contient des informations de configuration pour une variable d’environnement. Consultez la section Attributs de variable pour voir le schéma d’un objet variable.
    Attributs de variable
    Propriété Description Notes
    name Nom de la variable d’environnement. La variable d’environnement est créée si elle n’existe pas.
    type Type de données de la variable d’environnement. Les types valides sont :
    boolean
    byte
    datetime
    decimal
    double
    int16
    int32
    int64
    sbyte
    single
    string
    uint32
    uint64
    description Description de la variable d’environnement. La valeur Null est ignorée.
    value Valeur de la variable d’environnement. Cet attribut prend en charge toutes les valeurs JSON de type boolean, number ou string valides.
    La valeur est convertie au type spécifié par l’attribut type. Une erreur se produit en cas d’échec de la conversion.
    La valeur Null n’est pas valide. La tâche ignore cet objet variable d’environnement et génère un avertissement.
    sensible Détermine si la valeur de la variable d’environnement est sensible. Les entrées valides sont :
    true
    false

    Notes de publication

    Version 1.0.6

    Date de publication : 1er septembre 2021

    • Version en disponibilité générale.

    Version 1.0.5

    Date de publication : 2 juin 2021

    • Correction d’un problème qui empêchait parfois la tâche de génération SSIS version 1.* de générer des projets ou des packages avec le niveau de protection EncryptSensitiveWithPassword ou EncryptAllWithPassword (Erreur : « Le vecteur d’initialisation (IV) spécifié ne correspond pas à la taille de bloc de cet algorithme. »).
    • Suppression du contenu JSON dans le journal de la tâche de configuration du catalogue SSIS lorsque « Source du fichier de configuration » a la valeur « Chemin de fichier ».

    Version 1.0.4

    Date de publication : 21 avril 2021

    • Tâche de génération SSIS version 1.* (préversion)
      • Suppression de la dépendance sur Visual Studio et le concepteur SSIS. La tâche de génération peut s’exécuter sur un agent hébergé par Microsoft ou un agent auto-hébergé avec le système d’exploitation Windows et .NET Framework 4.6.2 ou ultérieur.
      • Il n’est pas nécessaire d’installer les composants prédéfinis.
      • Prise en charge du niveau de protection EncryptionWithPassword et EncryptionAllWithPassword.
    • Tâche de déploiement SSIS version 1.* (préversion)
      • Prise en charge du niveau de protection EncryptionWithPassword et EncryptionAllWithPassword.

    Version 1.0.3

    Date de publication : 21 octobre 2020

    • Autorisation de la spécification du suffixe de chaîne de connexion pour la tâche de déploiement SSIS et la tâche de configuration du catalogue SSIS.

    Version 1.0.2

    Date de publication : 26 mai 2020

    • Correction d’un problème qui peut provoquer l’échec de la tâche de configuration du catalogue SSIS dans certains cas, une fois le travail de configuration effectué.

    Version 1.0.1

    Date de publication : 9 mai 2020

    • Correction d’un problème dans lequel la tâche de génération SSIS génère toujours l’ensemble de la solution, même si un seul fichier dtproj est spécifié en tant que chemin du projet.

    Version 1.0.0

    Date de publication : 8 mai 2020

    • Version en disponibilité générale.
    • Ajout d’une restriction de version minimale de .NET Framework sur l’agent. Actuellement, la version minimale de .NET Framework est la version 4.6.2.
    • Description améliorée de la tâche de génération SSIS et de la tâche de déploiement SSIS.

    Version 0.2.0 - préversion

    Date de publication : 31 mars 2020

    • Ajout de la tâche de configuration du catalogue SSIS.

    Version 0.1.3 - préversion

    Date de publication : 19 janvier 2020

    • Correction d’un problème qui empêchait le déploiement d’ISPAC si son nom de fichier d’origine était modifié.

    Version 0.1.2 - préversion

    Date de publication : 13 janvier 2020

    • Ajout d’informations plus détaillées sur les exceptions dans le journal des tâches SSIS Deploy lorsque le type de destination est SSISDB.
    • Correction de l’exemple de chemin de destination dans le texte d’aide du chemin de destination de la propriété de la tâche SSIS Deploy.

    Version 0.1.1 - préversion

    Date de publication : 6 janvier 2020

    • Ajout d’une restriction pour la version minimale requise de l’agent. Actuellement, la version minimale de l’agent de ce produit est 2.144.0.
    • Correction de texte d’affichage incorrect pour la tâche SSIS Deploy.
    • Amélioration de certains messages d’erreur.

    Version 0.1.0 - préversion

    Date de publication : 5 décembre 2019

    Version initiale de SSIS DevOps Tools. Il s’agit d’une version préliminaire.

    Étapes suivantes