Compartir a través de


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.

Tarea de compilación de SSIS

tarea de construcción

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

tarea de implementación

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:
    1. Conéctese a la instancia local de SQL Server y seleccione la base de datos Gallery_Configuration.
    2. Ejecute la consulta INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50). Cambie 50 a un número mayor si la extensión es mayor que 50 MB.
    3. Después de ejecutar la consulta, reinicie Internet Information Services. Inténtelo de nuevo para cargar la extensión.
    4. 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

tarea de configuración del catálogo

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:

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

esquema de configuración del catálogo

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.
  • El parámetro puede ser un parámetro de proyecto o un parámetro de paquete.
  • El parámetro se omite si no existe.
  • Si el parámetro es una propiedad del administrador de conexiones, el nombre debe tener el formato CM.<Nombre del administrador de conexiones>.<nombre de propiedad>.
  • contenedor Contenedor del parámetro .
  • Si el parámetro es un parámetro de proyecto, el contenedor debe ser el nombre del proyecto.
  • Si es un parámetro de paquete, container debe ser el nombre del paquete con la extensión .dtsx.
  • value Valor del parámetro .
  • Cuando valueType es referenced: el valor es una referencia a una variable de entorno con el tipo de cadena.
  • Cuando valueType es literal: este atributo admite cualquier booleano válido, númeroy cadena valores JSON.
  • El valor se convertirá en el tipo de parámetro de destino. Se producirá un error si no se puede convertir.
  • El valor de null no es válido. La tarea omitirá este objeto de parámetro y dará una advertencia.
  • 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