Extension Azure DevOps pour les outils DevOps de SQL Server Integration Services (SSIS)
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, inscrivez-vous d'abord à Azure Pipelines, puis ajoutez l'extension SSIS DevOps Tools en suivant les é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 SSIS Build prend en charge la construction de fichiers dtproj dans le modèle de déploiement de projet ou de paquetage.
La tâche de déploiement SSIS Deploy prend en charge le déploiement de fichiers ispac uniques ou multiples vers le catalogue SSIS local et Azure-SSIS IR, ou des fichiers SSISDeploymentManifest et leurs fichiers associés vers un partage de fichiers local ou Azure.
tâche de configuration du catalogue SSIS prend en charge la configuration du 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éez un dossier.
- Mettre à jour la description du dossier.
- Projet
- Configurez la valeur des paramètres, la valeur littérale et la valeur référencée sont prises en charge.
- Ajoutez des références d’environnement.
- Environnement
- Créez un environnement.
- Mettre à jour la description de l’environnement.
- Créez ou mettez à jour une variable d’environnement.
- Dossier
Tâche de génération SSIS
Propriétés
Chemin d’accès au projet
Chemin du dossier ou du fichier du projet à générer. Si un chemin d’accès au dossier est spécifié, la tâche de génération SSIS recherche tous les fichiers dtproj de manière récursive sous ce dossier et les génère 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 du projet à utiliser pour la construction. S’il n’est pas fourni, il est défini par défaut sur 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, installez Visual Studio et le concepteur SSIS (extension VS2022 + projets SSIS ou extension VS2019 + projets SSIS) sur des agents auto-hébergés.
Pour générer des projets SSIS à l’aide de tous les composants prêtes à l’emploi (y compris le pack de fonctionnalités SSIS Azure et d’autres composants tiers), ces composants prêtes à l’emploi doivent être installés sur l’ordinateur sur lequel l’agent de pipeline est en cours d’exécution. 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 pour télécharger et installer les composants avant l'exécution de la tâche de génération SSIS. Voici l’exemple de script PowerShell pour 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
- Le niveau de protection EncryptSensitiveWithPassword et EncryptAllWithPassword ne sont pas pris en charge dans la tâche de génération SSIS. Vérifiez que tous les projets SSIS dans codebase n’utilisent pas ces deux niveaux de protection, ou que la tâche de génération SSIS cesse de répondre et expire pendant l’exécution.
Tâche de génération SSIS version 1.*
Améliorations apportées à la version 1.* :
Supprimez la dépendance vis-à-vis des environnements Visual Studio et du 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 version ultérieure.
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 création du projet SSIS contenant le 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 est valide uniquement lorsque le niveau de protection du projet et des packages SSIS est EncryptSensitiveWithPassword ou EncryptAllWithPassword. Pour le modèle de déploiement de package, tous les packages doivent partager le même mot de passe spécifié par cet argument.
Supprimer des données sensibles
Convertissez le niveau de protection du projet SSIS en DontSaveSensitive si cette valeur est vraie. Lorsque le niveau de protection est EncryptSensitiveWithPassword ou EncryptAllWithPassword, l’argument Mot de passe du projet doit être correctement défini. Cette option est valide uniquement pour le modèle de déploiement de projet.
Tâche de déploiement SSIS
Propriétés
Chemin source
Chemin des fichiers ISPAC ou SSISDeploymentManifest sources que vous souhaitez déployer. Ce chemin d’accès peut être un chemin d’accès au dossier ou un chemin d’accès de fichier.
Type de destination
Type de destination. Actuellement, la tâche de déploiement SSIS prend en charge deux types :
- système de fichiers: déployez des fichiers SSISDeploymentManifest et leurs fichiers associés dans un système de fichiers spécifié. Les partages de fichiers sur site et Azure sont pris en charge.
- SSISDB : déployez des fichiers ISPAC dans un catalogue SSIS spécifié, qui peut être hébergé sur un serveur SQL Server local ou Azure-SSIS Integration Runtime.
Serveur de destination
Nom du moteur de base de données de destination. Il peut s’agir du nom d’un serveur SQL Server local, d’Azure SQL Database ou d’Azure SQL Managed Instance. Cette propriété n’est visible que lorsque 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/<nom de dossier>
- \\<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 pour accéder au serveur de destination spécifié. Cette propriété est visible uniquement lorsque le type de destination est SSISDB. En général, les types d’authentification ci-dessous sont pris en charge :
- Authentification Windows
- Authentification de SQL Server
- Active Directory - Mot de passe
- Active Directory - Intégré
Toutefois, si un type d’authentification spécifique est pris en charge dépend du type de serveur de destination et du type d’agent. Le détail de la matrice de support est répertorié dans le tableau ci-dessous.
Type de serveur de destination | Agent hébergé par Microsoft | Agent autohébergé |
---|---|---|
SQL Server local ou machine virtuelle | N/A | Authentification Windows |
Azure SQL | l’authentification SQL Server Active Directory - Mot de passe |
l’authentification SQL Server Active Directory - Mot de passe Active Directory - Intégré |
Nom de domaine
Nom de domaine pour accéder au système de fichiers spécifié. Cette propriété n’est visible que lorsque le type de destination est Système de fichiers. Vous pouvez le laisser vide lorsque le compte d’utilisateur pour exécuter l’agent auto-hébergé a reçu l’accès en lecture/écriture au chemin de destination spécifié.
Nom d’utilisateur
Nom d’utilisateur pour accéder au système de fichiers spécifié ou À SSISDB. Cette propriété est visible lorsque le type de destination est Le système de fichiers ou le type d’authentification est l’authentification SQL Server ou Active Directory - Mot de passe. Vous pouvez le laisser vide lorsque le type de destination est le système de fichiers et que le compte d’utilisateur pour exécuter l’agent auto-hébergé a été autorisé à accéder en lecture/écriture au chemin de destination spécifié.
Mot de passe
Mot de passe pour accéder au système de fichiers spécifié ou À SSISDB. Cette propriété est visible lorsque le type de destination est le système de fichiers ou le type d’authentification est l’authentification SQL Server ou Active Directory - mot de passe. Vous pouvez le laisser vide lorsque le type de destination est le système de fichiers et que le compte d’utilisateur pour exécuter l’agent auto-hébergé a été autorisé à accéder en lecture/écriture au chemin de destination spécifié.
Remplacer les projets existants ou les fichiers SSISDeploymentManifest des mêmes noms
Spécifiez si les projets existants ou les fichiers SSISDeploymentManifest des mêmes noms sont remplacés. Si « Non », la tâche de déploiement SSIS ignore le déploiement de ces projets ou fichiers.
Continuer le déploiement lorsque l’erreur se produit
Spécifiez s’il faut continuer le déploiement pour les projets ou fichiers restants lorsqu’une erreur se produit. Si « Non », la tâche de déploiement SSIS s’arrête immédiatement lorsque l’erreur se produit.
Limitations et problèmes connus
La tâche de déploiement SSIS ne prend actuellement pas en charge les scénarios suivants :
- Configuration de l’environnement dans le catalogue SSIS.
- Déploiement d’ISPAC sur Azure SQL Server ou Azure SQL Managed Instance, qui autorisent uniquement l’authentification multifacteur.
- Déploiement de packages dans le magasin de packages MSDB ou SSIS.
- Si vous installez l'extension SSIS DevOps Tools dans Azure DevOps Server, vous pourriez voir le message suivant : « La taille du package d'extension dépasse la taille maximale autorisée. » Pour résoudre le problème, procédez comme suit :
- Connectez-vous à l’instance SQL Server locale et sélectionnez la base de données Gallery_Configuration.
- Exécutez la requête
INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50)
. Remplacez50
par un nombre supérieur si l’extension est supérieure à 50 Mo. - Après avoir exécuté la requête, redémarrez Internet Information Services. Réessayez de charger l’extension.
- Si l’erreur persiste, contactez l’équipe du support technique SQL Server.
Tâche de déploiement SSIS version 1.*
Améliorations apportées à la version 1.* :
- Supporte les niveaux de protection EncryptionWithPassword et EncryptionAllWithPassword.
Propriétés de la version 1.* uniquement
Mot de passe du projet
Mot de passe pour déchiffrer les fichiers ISPAC ou DTSX. Cet argument est valide uniquement lorsque le niveau de protection est EncryptSensitiveWithPassword ou EncryptAllWithPassword.
Tâche de configuration du catalogue SSIS
Propriétés
Source du fichier de configuration
Source du fichier JSON de 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 :
- Examinez un exemple de fichier JSON de configuration inline.
- Prenez connaissance du schéma JSON.
Chemin d’accès au fichier JSON de configuration
Chemin du fichier JSON de configuration du catalogue SSIS. Cette propriété n’est visible que lorsque vous sélectionnez « Chemin d’accès au fichier » comme source de fichier de configuration.
Pour utiliser les variables de pipeline dans le fichier JSON de configuration, vous devez ajouter une tâche de transformation de fichier avant cela pour remplacer les valeurs de configuration par des variables de pipeline. Pour plus d'informations, consultez la substitution de variable JSON .
Fichier JSON inline de configuration
Fichier JSON inline utilisé pour la configuration du catalogue SSIS. Cette propriété est visible uniquement lors de la sélection de « Inline » comme source de fichier de configuration. Les variables de pipeline peuvent être utilisées directement.
Restaurer la configuration lorsque l’erreur se produit
Indique s’il faut restaurer la configuration effectuée par cette tâche lorsque l’erreur se produit.
Serveur cible
Nom du moteur de base de données cible. Il peut s’agir du nom d’un serveur SQL Server local, d’Azure SQL Database ou d’Azure SQL Managed Instance.
Type d’authentification
Type d’authentification pour accéder au serveur cible spécifié. En général, les types d’authentification ci-dessous sont pris en charge :
- Authentification Windows
- Authentification de SQL Server
- Active Directory - Mot de passe
- Active Directory - Intégré
Toutefois, si un type d’authentification spécifique est pris en charge 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é |
---|---|---|
SQL Server local ou machine virtuelle | N/A | Authentification de Windows |
Azure SQL | l’authentification SQL Server Active Directory - Mot de passe |
l’authentification SQL Server Active Directory - Mot de passe Active Directory - Intégré |
Nom d’utilisateur
Nom d’utilisateur pour accéder au serveur SQL Server cible. Cette propriété est visible uniquement lorsque le type d’authentification est l’authentification SQL Server ou Active Directory - Mot de passe.
Mot de passe
Mot de passe pour accéder au serveur SQL Server cible. Cette propriété est visible uniquement lorsque le type d’authentification est l’authentification SQL Server ou Active Directory - Mot de passe.
Définir le JSON de configuration
Le schéma JSON de configuration comporte trois couches :
- catalogue
- dossier
- projet et environnement
Exemple de configuration inline JSON
{
"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 catalogue. | Consultez attributs de dossier pour le schéma d’un objet dossier. |
Attributs de dossier
Propriété | Description | Notes |
---|---|---|
nom | Nom du dossier catalogue. | Le dossier est créé s’il n’existe pas. |
description | Description du dossier catalogue. | La valeur de null sera ignorée. |
Projets | Table d’objets de projet. Chaque objet contient des informations de configuration pour un projet. | Consultez attributs de projet pour le schéma d’un objet projet. |
Environnements | Tableau d’objets environnement. Chaque objet contient des informations de configuration pour un environnement. | Consultez attributs d’environnement pour le schéma d’un objet d’environnement. |
Attributs de projet
Propriété | Description | Notes |
---|---|---|
nom | Nom du projet. | L’objet Project est ignoré si le projet n’existe pas dans le dossier parent. |
Paramètres | 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. |
références | Tableau d’objets de référence. Chaque objet représente une référence d’environnement au projet cible. | Consultez attributs de référence pour le schéma d’un objet de référence. |
Attributs de paramètre
Propriété | Description | Notes |
---|---|---|
nom | Nom du paramètre. | |
conteneur | Conteneur du paramètre. | |
value | Valeur du paramètre. | |
valueType | Type de la valeur du paramètre. | Les types valides sont les suivants : littéral: l’attribut valeur représente une valeur littérale. référencé: l'attribut de valeur 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, qui fait 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 |
---|---|---|
nom | 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 | Un tableau d’objets variables. | Chaque objet contient des informations de configuration pour une variable d’environnement.consultez attributs de variable pour le schéma d’un objet variable. |
Attributs de variable
Propriété | Description | Notes |
---|---|---|
nom | Nom de la variable d’environnement. | La variable d’environnement sera créée si elle n’existe pas. |
type | Type de données de la variable d’environnement. | Les types valides sont les suivants : boolean byte datetime Décimal double int16 int32 int64 sbyte single string uint32 uint64 |
description | Description de la variable d’environnement. | La valeur de null sera ignorée. |
value | Valeur de la variable d’environnement. | Cet attribut prend en charge toutes les valeurs JSON booléennes, numériques et chaînes valides. La valeur est convertie en type spécifié par type attribut. Une erreur se produit si la conversion échoue. La valeur de null n’est pas valide. La tâche ignore cet objet de variable d’environnement et donne un avertissement. |
sensible | Indique si la valeur de la variable d’environnement est sensible. | Les entrées valides sont les suivantes : 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 où, parfois, la tâche de génération SSIS de la version 1.* ne parvenait pas à générer des projets ou des packages avec le niveau de protection EncryptSensitiveWithPassword ou EncryptAllWithPassword, affichant l'erreur « Le vecteur d’initialisation spécifié (IV) ne correspond pas à la taille de bloc pour cet algorithme. »
- Suppression du contenu JSON dans le journal de la tâche de configuration du catalogue SSIS lorsque « Source du fichier de configuration » est « Chemin d’accès au fichier ».
Version 1.0.4
Date de publication : 21 avril 2021
- Tâche de génération SSIS version 1.* (préversion)
- Supprimez la dépendance au concepteur de Visual Studio et de 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 version ultérieure.
- Il n’est pas nécessaire d’installer les composants prédéfinis.
- Prise en charge du niveau de protection EncryptionWithPassword et EncryptionAllWithPassword.
- SSIS Tâche de déploiement version 1.* (version préliminaire)
- Support des niveaux de protection EncryptionWithPassword et EncryptionAllWithPassword.
Version 1.0.3
Date de publication : 21 octobre 2020
- Autorisez 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 lié à l’échec de la tâche de configuration du catalogue SSIS dans certains cas après l’exécution du travail de configuration.
Version 1.0.1
Date de publication : 9 mai 2020
- Correction d’un problème lié au fait que 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é comme chemin d’accès au projet.
Version 1.0.0
Date de publication : 8 mai 2020
- Version de disponibilité générale (GA).
- Ajout d’une restriction de version minimale du .NET Framework sur l’agent. Actuellement, la version minimale du .NET Framework est 4.6.2.
- Description affinée de la tâche de génération SSIS et de la tâche de déploiement SSIS.
Version 0.2.0 Preview
Date de publication : 31 mars 2020
- Ajouter une tâche de configuration du catalogue SSIS.
Version 0.1.3 Aperçu
Date de publication : 19 janvier 2020
- Correction d’un problème empêchant le déploiement d’ispac si son nom de fichier d’origine a été modifié.
Version 0.1.2 Aperçu
Date de publication : 13 janvier 2020
- Ajout d’informations d’exception plus détaillées 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 Aperçu
Date de publication : 6 janvier 2020
- Ajout d’une restriction de la configuration requise pour la version minimale de l’agent. Actuellement, la version minimale de cet agent est 2.144.0.
- Correction d’un texte d’affichage incorrect pour la tâche de déploiement SSIS.
- Amélioration de certains messages d’erreur.
Version 0.1.0 Preview
Date de publication : 5 décembre 2019
Version initiale de SSIS DevOps Tools. Il s’agit d’une version préliminaire.