Extensión de Azure DevOps para las herramientas de DevOps para SQL Server Integration Services (SSIS)
La extensión SSIS DevOps Tools está disponible en el marketplace de Azure DevOps. SSIS DevOps admite Azure DevOps Services, Azure DevOps Server 2019 y versiones posteriores.
Si no dispone de ninguna organización de Azure DevOps, primero debe registrarse en Azure Pipelines y, después, agregar la extensión SSIS DevOps Tools siguiendo estos pasos.
Las herramientas de DevOps de SSIS incluyen la tarea de compilación de SSIS, la tarea de la versión de implementación de SSIS y la tarea de configuración de catálogo de SSIS.
La tarea de compilación de SSIS admite la creación de archivos dtproj en el modelo de implementación del proyecto o en el modelo de implementación de paquetes.
La tarea de implementación de SSIS admite la implementación de archivos ispac únicos o múltiples en el catálogo de SSIS local y Azure-SSIS IR, o archivos SSISDeploymentManifest y sus archivos asociados en un recurso compartido de archivos local o de Azure.
tarea de configuración del catálogo de SSIS admite la configuración de carpetas, proyectos o entornos del catálogo de SSIS con un archivo de configuración en formato JSON. Esta tarea admite los siguientes escenarios:
- Carpeta
- Crear una carpeta.
- Actualice la descripción de la carpeta.
- Proyecto
- Se admite la configuración del valor de los parámetros, tanto el valor literal como el valor al que se hace referencia.
- Agregue referencias de entorno.
- Medio ambiente
- Crear entorno.
- Actualice la descripción del entorno.
- Cree o actualice la variable de entorno.
- Carpeta
Tarea de compilación de SSIS
Propiedades
Ruta de acceso del proyecto
Ruta de la carpeta o archivo del proyecto que se va a compilar. Si se especifica una ruta de acceso de carpeta, la tarea Compilación de SSIS buscará todos los archivos dtproj de forma recursiva en esta carpeta y los compilará todos.
La ruta de acceso del proyecto no puede estar vacía, configúrela como . Compilar desde la carpeta raíz del repositorio.
Configuración del proyecto
Nombre de la configuración del proyecto que se va a usar para la compilación. Si no se proporciona, el valor predeterminado es la primera configuración del proyecto definida en cada archivo dtproj.
Ruta de acceso de resultados
Ruta de acceso de una carpeta independiente para guardar los resultados de la compilación, que se pueden publicar como artefactos de compilación a través de una tarea de publicación de artefactos de compilación.
Limitaciones y problemas conocidos
La tarea de compilación de SSIS se basa en Visual Studio y en el diseñador de SSIS, que es obligatorio en los agentes de compilación. Por lo tanto, para ejecutar la tarea de compilación de SSIS en la canalización:
- para los agentes hospedados por Microsoft, debe elegir una imagen disponible que incluya la extensión Visual Studio y SQL Server Integration Services, por ejemplo, windows-2022. Para obtener más información, consulte la documentación de agentes hospedados por Microsoft para software incluido en las imágenes disponibles.
- para agentes autohospedados, instale Visual Studio y el diseñador de SSIS (ya sea la extensión VS2022 + proyectos de SSIS o la extensión VS2019 + proyectos de SSIS) en agentes autohospedados.
Para compilar proyectos de SSIS mediante el uso de componentes integrados (incluido Azure Feature Pack de SSIS y otros componentes de terceros), los componentes integrados deben instalarse en el equipo en el que se ejecuta el agente de canalización. En el caso del agente hospedado por Microsoft, el usuario puede agregar una tarea de script de PowerShell o una tarea de script de línea de comandos para descargar e instalar los componentes antes de que se ejecute la tarea de compilación de SSIS. A continuación se muestra el script de PowerShell de ejemplo para instalar 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
- El nivel de protección EncryptSensitiveWithPassword y EncryptAllWithPassword no se admiten en la tarea de creación de SSIS. Asegúrese de que todos los proyectos de SSIS del código base no usan ninguno de estos dos niveles de protección, o la tarea de compilación de SSIS dejará de responder y agotará el tiempo de espera durante la ejecución.
Tarea de compilación de SSIS versión 1.*
Mejoras en la versión 1.*:
Elimine la dependencia de Visual Studio y el diseñador de SSIS. La tarea de compilación se puede ejecutar en el agente hospedado por Microsoft o en un agente autohospedado con el sistema operativo Windows y .NET Framework 4.6.2 o posterior.
No es necesario instalar componentes de inmediato.
Admite el nivel de protección EncryptionWithPassword y EncryptionAllWithPassword.
Limitaciones y problemas conocidos
- La tarea de compilación de SSIS versión 1.* no admite la compilación del proyecto SSIS que contiene el paquete SSIS con firma digital.
Solo propiedades de la versión 1.*
Contraseña del proyecto
Contraseña del proyecto de SSIS y sus paquetes. Este argumento solo es válido cuando el nivel de protección del proyecto de SSIS y los paquetes es EncryptSensitiveWithPassword o EncryptAllWithPassword. Para el modelo de implementación de paquetes, todos los paquetes deben compartir la misma contraseña especificada por este argumento.
Quitar datos confidenciales
Cambiar el nivel de protección del proyecto SSIS a DontSaveSensitive si este valor es true. Cuando el nivel de protección es EncryptSensitiveWithPassword o EncryptAllWithPassword, el argumento Project Password debe establecerse correctamente. Esta opción solo es válida para el modelo de implementación de proyectos.
Tarea de implementación de SSIS
Propiedades
Ruta de origen
Ruta de los archivos ISPAC o SSISDeploymentManifest de origen que quieres desplegar. Esta ruta podría ser una ruta de carpeta o una ruta de archivo.
Tipo de destino
Tipo del destino. Actualmente, la tarea de implementación de SSIS admite dos tipos:
- Sistema de Archivos: despliegue archivos SSISDeploymentManifest y sus archivos asociados en un sistema de archivos especificado. Se admiten recursos compartidos de archivos tanto locales como en Azure.
- SSISDB: implemente archivos ISPAC en un catálogo de SSIS especificado, que se puede hospedar en SQL Server local o Azure-SSIS Integration Runtime.
Servidor de destino
Nombre del motor de base de datos de destino. Puede ser el nombre de una instancia local de SQL Server, Azure SQL Database o Instancia administrada de Azure SQL. Esta propiedad solo es visible cuando el tipo de destino es SSISDB.
Ruta de acceso de destino
Ruta de acceso de la carpeta de destino en la que se implementará el archivo de código fuente. Por ejemplo:
- /SSISDB/<folderName>
- \\<machineName>\<shareFolderName>\<optionalSubfolderName>
La tarea de implementación de SSIS creará la carpeta y la subcarpeta, si no existen.
Tipo de autenticación
Tipo de autenticación para acceder al servidor de destino especificado. Esta propiedad solo es visible cuando el tipo de destino es SSISDB. En general, se admiten los siguientes tipos de autenticación:
- Autenticación de Windows
- Autenticación de SQL Server
- Active Directory: contraseña
- Active Directory - Integrado
Pero si se admite un tipo de autenticación específico depende del tipo de servidor de destino y del tipo de agente. La matriz de compatibilidad detallada se muestra en la tabla siguiente.
Tipo de servidor de destino | Agente hospedado por Microsoft | Agente autohospedado |
---|---|---|
SQL Server local o máquina virtual | N/A | Autenticación de Windows |
Azure SQL | Autenticación de SQL Server Active Directory: contraseña |
Autenticación de SQL Server Active Directory: contraseña Active Directory - Integrado |
Nombre de dominio
Nombre de dominio para acceder al sistema de archivos especificado. Esta propiedad solo está visible cuando el tipo de destino es Sistema de archivos. Puede dejarla vacía cuando la cuenta de usuario que va a ejecutar el agente autohospedado haya obtenido acceso de lectura/escritura a la ruta de acceso al destino especificado.
Nombre de usuario
Nombre de usuario para acceder al sistema de archivos o SSISDB especificados. Esta propiedad es visible cuando el tipo de destino es Sistema de archivos o Tipo de autenticación es autenticación de SQL Server o Active Directory - Contraseña. Puede dejarlo vacío cuando el tipo de destino es el sistema de archivos y la cuenta de usuario para ejecutar el agente autohospedado se le ha concedido acceso de lectura y escritura a la ruta de acceso de destino especificada.
Contraseña
Contraseña para acceder al sistema de archivos o SSISDB especificados. Esta propiedad es visible cuando el tipo de destino es el sistema de archivos o el tipo de autenticación es autenticación de SQL Server o Active Directory: contraseña. Puede dejarlo vacío cuando el tipo de destino es el sistema de archivos y la cuenta de usuario para ejecutar el agente autohospedado se le ha concedido acceso de lectura y escritura a la ruta de acceso de destino especificada.
Sobrescribir proyectos existentes o archivos SSISDeploymentManifest de los mismos nombres
Especifique si desea sobrescribir los proyectos existentes o los archivos SSISDeploymentManifest con los mismos nombres. Si es "No", la tarea Implementación de SSIS omitirá la implementación de esos proyectos o archivos.
Continuar la implementación cuando se produce un error
Especifique si desea continuar la implementación para los proyectos o archivos restantes cuando se produce un error. Si es "No", la tarea De implementación de SSIS se detendrá inmediatamente cuando se produzca un error.
Limitaciones y problemas conocidos
Actualmente, la tarea de implementación de SSIS no admite los siguientes escenarios:
- Configuración del entorno en el catálogo de SSIS.
- Implementación de ISPAC en Azure SQL Server o Azure SQL Managed Instance, que solo permiten la autenticación multifactor.
- Implementación de paquetes en MSDB o almacén de paquetes SSIS.
- Si instala la extensión SSIS DevOps Tools en Azure DevOps Server, es posible que vea el mensaje "El tamaño del paquete de extensión supera el tamaño máximo del paquete". Para resolver el problema, complete los pasos siguientes:
- Conéctese a la instancia local de SQL Server y seleccione la base de datos Gallery_Configuration.
- Ejecute la consulta
INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50)
. Cambie50
a un número mayor si la extensión es mayor que 50 MB. - Después de ejecutar la consulta, reinicie Internet Information Services. Inténtelo de nuevo para cargar la extensión.
- Si el error persiste, póngase en contacto con el equipo de soporte técnico de SQL Server.
Tarea de implementación de SSIS versión 1.*
Mejoras en la versión 1.*:
- Admite el nivel de protección EncryptionWithPassword y EncryptionAllWithPassword.
Solo propiedades de la versión 1.*
Contraseña del proyecto
Contraseña para descifrar los archivos ISPAC o DTSX. Este argumento solo es válido cuando el nivel de protección es EncryptSensitiveWithPassword o EncryptAllWithPassword.
Tarea de configuración del catálogo de SSIS
Propiedades
Origen del archivo de configuración
Origen del archivo JSON de configuración del catálogo de SSIS. Puede ser "Ruta de acceso al archivo" o "Insertado".
Consulte los detalles sobre cómo definir el archivo JSON de configuración:
- Consulte un ejemplo de archivo JSON de configuración insertado.
- Consulte Esquema JSON.
Ruta de acceso al archivo JSON de configuración
Ruta del archivo JSON de configuración del catálogo de SSIS. Esta propiedad solo es visible al seleccionar "Ruta de acceso del archivo" como origen del archivo de configuración.
Para usar variables de canalización en el archivo JSON de configuración, debe agregar una tarea de transformación de archivo antes de esta para reemplazar los valores de configuración con variables de canalización. Para obtener más información, vea Sustitución de variables JSON.
Archivo JSON de configuración insertado
Archivo JSON de configuración insertado del catálogo de SSIS. Esta propiedad solo es visible al seleccionar "Inline" como origen del archivo de configuración. Las variables de canalización se pueden usar directamente.
Revertir la configuración cuando se produce un error
Si se debe revertir la configuración realizada por esta tarea cuando se produce un error.
Servidor de destino
Nombre del motor de base de datos de destino. Puede ser el nombre de una instancia local de SQL Server, Azure SQL Database o Instancia administrada de Azure SQL.
Tipo de autenticación
Tipo de autenticación para acceder al servidor de destino especificado. En general, se admiten los siguientes tipos de autenticación:
- Autenticación de Windows
- Autenticación de SQL Server
- Active Directory: contraseña
- Active Directory - Integrado
Pero si se admite un tipo de autenticación específico depende del tipo de servidor de destino y del tipo de agente. La matriz de compatibilidad detallada se muestra en la tabla siguiente.
Tipo de servidor de destino | Agente hospedado por Microsoft | Agente autohospedado |
---|---|---|
SQL Server local o máquina virtual | N/A | Autenticación de Windows |
Azure SQL | Autenticación de SQL Server Active Directory: contraseña |
Autenticación de SQL Server Active Directory: contraseña Active Directory - Integrado |
Nombre de usuario
Nombre de usuario para acceder al servidor SQL Server de destino. Esta propiedad solo es visible cuando el tipo de autenticación es autenticación de SQL Server o Active Directory - Contraseña.
Contraseña
Contraseña para acceder al servidor SQL Server de destino. Esta propiedad solo es visible cuando el tipo de autenticación es autenticación de SQL Server o Active Directory - Contraseña.
Definición del archivo JSON de configuración
El esquema JSON de configuración tiene tres capas:
- catálogo
- carpeta
- proyecto y entorno
Un ejemplo de archivo JSON de configuración insertado
{
"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
}
]
}
]
}
]
}
Esquema JSON
Atributos de catálogo
Propiedad | Descripción | Notas |
---|---|---|
carpetas | Matriz de objetos de carpeta. Cada objeto contiene información de configuración para una carpeta de catálogo. | Consulte atributos de carpeta para obtener el esquema de un objeto de carpeta. |
Atributos de carpeta
Propiedad | Descripción | Notas |
---|---|---|
nombre | Nombre de la carpeta del catálogo. | Si no existe, se creará la carpeta. |
descripción | Descripción de la carpeta de catálogo. | Se omitirá el valor de null. |
Proyectos | Matriz de objetos de proyecto. Cada objeto contiene información de configuración para un proyecto. | Consulte atributos de proyecto para ver el esquema de un objeto de proyecto. |
Entornos | Matriz de objetos de entorno. Cada objeto contiene información de configuración para un entorno. | Consulte atributos de entorno para obtener el esquema de un objeto de entorno. |
Atributos del proyecto
Propiedad | Descripción | Notas |
---|---|---|
nombre | Nombre del proyecto. | Se omitirá el objeto project si el proyecto no existe en la carpeta primaria. |
Parámetros | Matriz de objetos de parámetro. Cada objeto contiene información de configuración para un parámetro. | Consulte el esquema de un objeto de parámetro en Atributos de parámetro. |
Referencias | Matriz de objetos de referencia. Cada objeto representa una referencia de entorno al proyecto de destino. | Consulte atributos de referencia para ver el esquema de un objeto de referencia. |
Atributos de parámetro
Propiedad | Descripción | Notas |
---|---|---|
nombre | Nombre del parámetro. | |
contenedor | Contenedor del parámetro . | |
value | Valor del parámetro . | |
valueType | Tipo del valor del parámetro. | Los tipos válidos son: literal: el atributo de valor representa un valor literal. referido: El atributo de valor representa una referencia a una variable de entorno. |
Atributos de referencia
Propiedad | Descripción | Notas |
---|---|---|
environmentFolder | Nombre de carpeta del entorno. | Si no existe, se creará la carpeta. El valor puede ser ".", que representa la carpeta primaria del proyecto, que hace referencia al entorno. |
nombreDelEntorno | Nombre del entorno al que se hace referencia. | Si no existe, se creará el entorno especificado. |
Atributos de entorno
Propiedad | Descripción | Notas |
---|---|---|
nombre | Nombre del entorno. | Si el entorno no existe, se creará. |
descripción | Descripción del entorno. | Se omitirá el valor de null. |
variables | Matriz de objetos variables. | Cada objeto contiene información de configuración para una variable de entorno.vea Atributos de variable para el esquema de un objeto variable. |
Atributos de variables
Propiedad | Descripción | Notas |
---|---|---|
nombre | Nombre de la variable de entorno. | Si no existe, se creará una variable de entorno. |
tipo | Tipo de datos de la variable de entorno. | Los tipos válidos son: boolean byte fecha y hora Decimal double int16 int32 int64 sbyte single string uint32 uint64 |
descripción | Descripción de la variable de entorno. | Se omitirá el valor de null. |
value | Valor de la variable de entorno. | Este atributo admite cualquier valor JSON booleano, numérico y de cadena válido. El valor se convertirá al tipo especificado por el atributo tipo. Se producirá un error si se produce un error en la conversión. El valor de null no es válido. La tarea omitirá este objeto de variable de entorno y proporcionará una advertencia. |
sensitive | Si el valor de la variable de entorno es confidencial. | Las entradas válidas son: true false |
Notas de la versión
Versión 1.0.6
Fecha de lanzamiento: 1 de septiembre de 2021
- Versión de disponibilidad general (GA).
Versión 1.0.5
Fecha de lanzamiento: 2 de junio de 2021
- Se ha corregido un problema por el que, a veces, la tarea de compilación de SSIS de la versión 1.* no pudo compilar proyectos o paquetes con el nivel de protección EncryptSensitiveWithPassword o EncryptAllWithPassword con el error "El vector de inicialización especificado (IV) no coincide con el tamaño de bloque de este algoritmo".
- Se eliminó el contenido JSON en el registro de la tarea de Configuración del catálogo de SSIS cuando "Origen del archivo de configuración" es "Ruta del archivo".
Versión 1.0.4
Fecha de lanzamiento: 21 de abril de 2021
- Tarea de compilación de SSIS versión 1.* (versión preliminar)
- Elimine la dependencia de Visual Studio y del diseñador de SSIS. La tarea de compilación se puede ejecutar en el agente hospedado por Microsoft o en un agente autohospedado con el sistema operativo Windows y .NET Framework 4.6.2 o posterior.
- No es necesario instalar componentes de inmediato.
- Admite el nivel de protección EncryptionWithPassword y EncryptionAllWithPassword.
- Tarea de implementación de SSIS versión 1.* (versión preliminar)
- Admite el nivel de protección EncryptionWithPassword y EncryptionAllWithPassword.
Versión 1.0.3
Fecha de lanzamiento: 21 de octubre de 2020
- Permite especificar el sufijo de cadena de conexión para la tarea Implementación de SSIS y la tarea configuración del catálogo de SSIS.
Versión 1.0.2
Fecha de lanzamiento: 26 de mayo de 2020
- Se ha corregido un problema que provocaba un error en la tarea de Configuración del catálogo de SSIS en algunos casos después de completar la configuración.
Versión 1.0.1
Fecha de lanzamiento: 9 de mayo de 2020
- Se ha corregido un problema que provocaba que la tarea de compilación de SSIS siempre compilara toda la solución incluso si solo se especifica un solo archivo dtproj como ruta de acceso del proyecto.
Versión 1.0.0
Fecha de lanzamiento: 8 de mayo de 2020
- Versión de disponibilidad general (GA).
- Se agregó una restricción de la versión mínima de .NET Framework en el agente. Actualmente, la versión mínima de .NET Framework es 4.6.2.
- Descripción refinada de la tarea Compilación de SSIS y tarea de implementación de SSIS.
Versión preliminar 0.2.0
Fecha de lanzamiento: 31 de marzo de 2020
- Agregue la tarea Configuración del catálogo de SSIS.
Versión preliminar 0.1.3
Fecha de lanzamiento: 19 de enero de 2020
- Se ha corregido un problema que impedía que ispac se implementara si se cambió su nombre de archivo original.
Versión preliminar 0.1.2
Fecha de lanzamiento: 13 de enero de 2020
- Se ha agregado información de excepción más detallada en el registro de tareas de implementación de SSIS cuando el tipo de destino es SSISDB.
- Se ha corregido la ruta de destino de ejemplo en el texto de ayuda de la ruta de destino de la propiedad de la tarea de implementación de SSIS.
Versión preliminar 0.1.1
Fecha de lanzamiento: 6 de enero de 2020
- Se agregó una restricción del requisito mínimo de versión del agente. Actualmente, la versión mínima del agente de este producto es la 2.144.0.
- Se ha corregido algún texto de visualización incorrecto para la tarea de implementación de SSIS.
- Se han modificado algunos mensajes de error.
Versión preliminar 0.1.0
Fecha de lanzamiento: 5 de diciembre de 2019
Versión inicial de SSIS DevOps Tools. Se trata de una versión preliminar.
Pasos siguientes
- Obtener la extensión SSIS DevOps