Extensão do Azure DevOps para Ferramentas de DevOps do SSIS (SQL Server Integration Services)

A extensão Ferramentas de DevOps do SSIS está disponível no Marketplace do Azure DevOps. O SSIS DevOps dá suporte ao Azure DevOps Services, ao Azure DevOps Server 2019 e versões superiores.

Caso você não tenha uma organização do Azure DevOps, primeiro, inscreva-se no Azure Pipelines e, em seguida, adicione a extensão Ferramentas de DevOps do SSIS seguindo as etapas.

As Ferramentas de DevOps do SSIS incluem a tarefa Build do SSIS, a tarefa de versão Implantação do SSIS e a tarefa de Configuração de Catálogo do SSIS.

  • A tarefa Build do SSIS dá suporte à criação de arquivos dtproj no modelo de implantação de projeto ou no modelo de implantação de pacote.

  • A tarefa Implantação do SSIS dá suporte à implantação de arquivos ispac únicos ou múltiplos no catálogo local do SSIS e no Azure-SSIS IR ou arquivos SSISDeploymentManifest e os arquivos associados localmente ou no compartilhamento de arquivo do Azure.

  • A tarefa Configuração de Catálogo do SSIS dá suporte à configuração de pasta/projeto/ambiente do Catálogo do SSIS com um arquivo de configuração no formato JSON. Essa tarefa é compatível com os seguintes cenários:

    • Pasta
      • Criar pasta.
      • Atualizar descrição da pasta.
    • Projeto
      • Configurar o valor dos parâmetros, há suporte para o valor literal e o valor referenciado.
      • Adicionar referências de ambiente.
    • Ambiente
      • Criar ambiente.
      • Atualizar descrição do ambiente.
      • Criar ou atualizar variável de ambiente.

Tarefa Build do SSIS

build task

Propriedades

Caminho do projeto

Caminho da pasta do projeto ou do arquivo a ser compilado. Se um caminho de pasta for especificado, a tarefa Build do SSIS pesquisará todos os arquivos dtproj de maneira recursiva nessa pasta e os criará.

O caminho do projeto não pode estar vazio, definido como ., para criar na pasta raiz do repositório.

Configuração do projeto

Nome da configuração de projeto a ser usada para o build. Se ele não for fornecido, usará como padrão a primeira configuração de projeto definida em cada arquivo dtproj.

Caminho de saída

Caminho de uma pasta separada para salvar os resultados do build, que podem ser publicados como artefatos de compilação por meio da tarefa publicar artefatos de compilação.

Limitações e problemas conhecidos

  • A tarefa Build do SSIS depende do Visual Studio e do Designer SSIS, que é obrigatório nos agentes de build. Portanto, para executar a tarefa Build do SSIS no pipeline:

    • para agentes hospedados pela Microsoft, você precisa escolher uma imagem disponível que inclua a extensão do SQL Server Integration Services e Visual Studio, por exemplo, windows-2022. Os detalhes referem-se à documentação de agentes hospedados pela Microsoft para softwares incluídos em imagens disponíveis.
    • para agentes auto-hospedados, instale o designer do SSIS e Visual Studio (VS2022 + extensão de projetos SSIS ou VS2019 + extensão de projetos SSIS) nos agentes auto-hospedados.
  • Para criar projetos do SSIS usando componentes prontos para uso (incluindo o feature pack do SSIS para o Azure e outros componentes de terceiros), os componentes prontos para uso precisam ser instalados no computador em que o agente de pipeline está em execução. Para o agente hospedado pela Microsoft, o usuário pode adicionar uma tarefa Script do PowerShell ou uma tarefa Script de Linha de Comando para baixar e instalar os componentes antes de executar a tarefa Build do SSIS. Confira abaixo o exemplo de script do PowerShell para instalar o Feature Pack do Azure:

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
  • Não há suporte para o nível de proteção EncryptSensitiveWithPassword e EncryptAllWithPassword na tarefa Build do SSIS. Verifique se todos os projetos do SSIS na base de código não estão usando esses dois níveis de proteção ou se a tarefa Build do SSIS interromperá a resposta e atingirá o tempo limite durante a execução.

Tarefa Build do SSIS versão 1.*

Aprimoramentos na versão 1.*:

  • Remover a dependência no Visual Studio e no designer do SSIS. A tarefa build pode ser executada no agente hospedado pela Microsoft ou em um agente auto-hospedado com sistema operacional Windows e .NET Framework 4.6.2 ou superior.

  • Não há necessidade de instalar componentes prontos para uso.

  • Suporte ao nível de proteção EncryptionWithPassword e EncryptionAllWithPassword.

Limitações e problemas conhecidos

  • A tarefa build do SSIS versão 1.* não dá suporte à criação do projeto SSIS que contém o pacote SSIS com assinatura digital.

Somente as propriedades da versão 1.*

Senha do Projeto

Senha do projeto do SSIS e seus pacotes. Esse argumento só é válido quando o nível de proteção do projeto e dos pacotes do SSIS é EncryptSensitiveWithPassword ou EncryptAllWithPassword. Para o modelo de implantação de pacote, todos os pacotes devem compartilhar a mesma senha especificada por esse argumento.

Remover dados confidenciais

Converter o nível de proteção do projeto do SSIS para DontSaveSensitve se esse valor for verdadeiro. Quando o nível de proteção é EncryptSensitiveWithPassword ou EncryptAllWithPassword, o argumento Senha do Projeto deve estar definido corretamente. Essa opção só é válida para o modelo de implantação de projeto.

Tarefa Implantação do SSIS

deploy task

Propriedades

Caminho de origem

O caminho dos arquivos ISPAC ou SSISDeploymentManifest de origem que você deseja implantar. Esse caminho pode ser um caminho de pasta ou um caminho de arquivo.

Tipo de destino

Tipo do destino. Atualmente, a tarefa Implantação do SSIS dá suporte a dois tipos:

  • Sistema de arquivos: Implante arquivos SSISDeploymentManifest e os arquivos associados em um sistema de arquivos especificado. Há suporte para o compartilhamento de arquivo local e do Azure.
  • SSISDB: Implante arquivos ISPAC em um catálogo do SSIS especificado, que pode ser hospedado no SQL Server local ou no Azure-SSIS Integration Runtime.

Servidor de destino

Nome do Mecanismo de Banco de Dados de destino. Pode ser o nome de um SQL Server local, de um Banco de Dados SQL do Azure ou de uma Instância Gerenciada de SQL do Azure. Essa propriedade só é visível quando o tipo de destino é SSISDB.

Caminho de destino

Caminho da pasta de destino no qual o arquivo de origem será implantado. Por exemplo:

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

A tarefa Implantação do SSIS criará a pasta e a subpasta caso elas não existam.

Tipo de autenticação

Tipo de autenticação para acessar o servidor de destino especificado. Essa propriedade só é visível quando o tipo de destino é SSISDB. De modo geral, os tipos de autenticação abaixo têm suporte:

  • Autenticação do Windows
  • Autenticação do SQL Server
  • Active Directory – Senha
  • Active Directory – Integrado

Porém, o suporte ao tipo de autenticação específico depende do tipo de servidor de destino e do tipo de agente. A matriz de suporte detalhado é listada na tabela abaixo.

Tipo de servidor de destino Agente hospedado pela Microsoft Agente auto-hospedado
SQL Server local ou VM N/D Autenticação do Windows
SQL do Azure Autenticação do SQL Server
Active Directory – Senha
Autenticação do SQL Server
Active Directory – Senha
Active Directory – Integrado

Nome de domínio

Nome de domínio para acessar o sistema de arquivos especificado. Essa propriedade só é visível quando o tipo de destino é sistema de arquivos. Você poderá deixá-la vazia quando a conta de usuário usada para executar o agente auto-hospedado receber acesso de leitura/gravação ao caminho de destino especificado.

Nome de Usuário

Nome de usuário para acessar o SSISDB ou o sistema de arquivos especificado. Essa propriedade é visível quando o tipo de destino é sistema de arquivos ou o tipo de autenticação é Autenticação do SQL Server ou Active Directory: senha. Você poderá deixá-la vazia quando o tipo de destino for sistema de arquivos e a conta de usuário usada para executar o agente auto-hospedado receber acesso de leitura/gravação ao caminho de destino especificado.

Senha

Senha para acessar o SSISDB ou o sistema de arquivos especificado. Essa propriedade é visível quando o tipo de destino é sistema de arquivos ou o tipo de autenticação é Autenticação do SQL Server ou Active Directory: senha. Você poderá deixá-la vazia quando o tipo de destino for sistema de arquivos e a conta de usuário usada para executar o agente auto-hospedado receber acesso de leitura/gravação ao caminho de destino especificado.

Substituir projetos existentes ou arquivos SSISDeploymentManifest com os mesmos nomes

Especifique se deseja substituir os projetos existentes ou os arquivos SSISDeploymentManifest com os mesmos nomes. Se a opção for 'Não', a tarefa Implantação do SSIS vai ignorar a implantação desses projetos ou desses arquivos.

Continuar a implantação quando ocorrer um erro

Especifique se deseja continuar a implantação para projetos ou arquivos restantes quando ocorrer um erro. Se a opção for 'Não', a tarefa Implantação do SSIS será interrompida imediatamente quando ocorrer um erro.

Limitações e problemas conhecidos

Atualmente, a tarefa Implantação do SSIS não dá suporte aos seguintes cenários:

  • Configuração do ambiente no catálogo do SSIS.
  • Implantação do ISPAC no Azure SQL Server ou na Instância Gerenciada de SQL do Azure que só permite a autenticação multifator.
  • Implantação de pacotes no Repositório de Pacotes SSIS ou MSDB.
  • Se você instalar a extensão de Ferramentas de DevOps do SSIS no Azure DevOps Server, poderá ver a mensagem "O tamanho do pacote de extensão excede o tamanho máximo do pacote". Para resolver o problema, realize as seguintes etapas:
    1. Conecte-se à instância do SQL Server local e selecione o banco de dados Gallery_Configuration.
    2. Execute a consulta INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50). Altere 50 para um número mais alto se a extensão for maior que 50 MBs.
    3. Depois de executar a consulta, reinicie os Serviços de Informações da Internet. Tente carregar a extensão novamente.
    4. Se o erro persistir, entre em contato com a equipe de suporte do SQL Server.

Tarefa Implantação do SSIS versão 1.*

Aprimoramentos na versão 1.*:

  • Suporte ao nível de proteção EncryptionWithPassword e EncryptionAllWithPassword.

Somente as propriedades da versão 1.*

Senha do Projeto

Senha para descriptografar os arquivos ISPAC ou DTSX. Esse argumento só é válido quando o nível de proteção é EncryptSensitiveWithPassword ou EncryptAllWithPassword.

Tarefa de Configuração do Catálogo do SSIS

catalog configuration task

Propriedades

Origem do arquivo de configuração

Origem do arquivo JSON de configuração do catálogo do SSIS. Pode ser "Caminho do arquivo" ou "Embutido".

Confira os detalhes de como definir a configuração do JSON:

Caminho do arquivo JSON de configuração

Caminho do arquivo JSON de configuração do catálogo do SSIS. Essa propriedade só é visível ao selecionar "Caminho do arquivo" como origem do arquivo de configuração.

Para usar variáveis de pipeline no arquivo JSON de configuração, você precisa adicionar uma Tarefa de Transformação de Arquivo antes dessa tarefa para substituir valores de configuração por variáveis de pipeline. Para obter mais informações, confira Substituição de variável JSON.

JSON de configuração embutido

JSON embutido de configuração do catálogo do SSIS. Essa propriedade só é visível ao selecionar "Embutido" como origem do arquivo de configuração. As variáveis de pipeline podem ser usadas diretamente.

Reverter configuração quando ocorrer um erro

Se a configuração feita por esse erro deve ser revertida quando um erro ocorrer.

Servidor de destino

Nome do Mecanismo de Banco de Dados de destino. Pode ser o nome de um SQL Server local, de um Banco de Dados SQL do Azure ou de uma Instância Gerenciada de SQL do Azure.

Tipo de autenticação

Tipo de autenticação para acessar o servidor de destino especificado. De modo geral, os tipos de autenticação abaixo têm suporte:

  • Autenticação do Windows
  • Autenticação do SQL Server
  • Active Directory – Senha
  • Active Directory – Integrado

Porém, o suporte ao tipo de autenticação específico depende do tipo de servidor de destino e do tipo de agente. A matriz de suporte detalhado é listada na tabela abaixo.

Tipo de servidor de destino Agente hospedado pela Microsoft Agente auto-hospedado
SQL Server local ou VM N/D Autenticação do Windows
SQL do Azure Autenticação do SQL Server
Active Directory – Senha
Autenticação do SQL Server
Active Directory – Senha
Active Directory – Integrado

Nome de Usuário

Nome de usuário para acessar o SQL Server de destino. Essa propriedade é visível apenas quando o tipo de Autenticação é Autenticação do SQL Server ou Active Directory: Senha.

Senha

Senha para acessar o SQL Server de destino. Essa propriedade é visível apenas quando o tipo de Autenticação é Autenticação do SQL Server ou Active Directory: Senha.

Definir JSON de configuração

O esquema JSON de configuração tem três camadas:

  • catálogo
  • folder
  • projeto e ambiente

catalog configuration schema

Um exemplo de JSON de configuração embutido

{
  "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
            }
          ]
        }
      ]
    }
  ]
}

JSON schema

Atributos do catálogo
Propriedade Descrição Observações
pastas Uma matriz de objetos de pasta. Cada objeto contém informações de configuração para uma pasta de catálogo. Confira Atributos da pasta para ver o esquema de um objeto de pasta.
Atributos da pasta
Propriedade Descrição Observações
name Nome da pasta do catálogo. A pasta será criada se não existir.
descrição Descrição da pasta do catálogo. O valor de nulo será ignorado.
projects Uma matriz de objetos do projeto. Cada objeto contém informações de configuração para um projeto. Confira Atributos de projeto para ver o esquema de um objeto de projeto.
environments Uma matriz de objetos de ambiente. Cada objeto contém informações de configuração para um ambiente. Confira Atributos de ambiente para ver o esquema de um objeto de ambiente.
Atributos de projeto
Propriedade Descrição Observações
name Nome do projeto. O objeto do projeto será ignorado se o projeto não existir na pasta pai.
parâmetros Uma matriz de objetos de parâmetro. Cada objeto contém informações de configuração para um parâmetro. Confira Atributos do parâmetro para ver o esquema de um objeto de parâmetro.
referências Uma matriz de objetos de referência. Cada objeto representa uma referência de ambiente para o projeto de destino. Confira Atributos de referência para ver um esquema de objeto de referência.
Atributos de parâmetro
Propriedade Descrição Observações
name Nome do parâmetro.
  • O parâmetro pode ser um parâmetro de projeto ou um parâmetro de pacote.
  • O parâmetro será ignorado se ele não existir.
  • Se o parâmetro for uma propriedade do gerenciador de conexões, o nome deverá estar no formato CM.<Nome do Gerenciador de Conexões>.<Nome da Propriedade>.
  • contêiner Contêiner do parâmetro.
  • Se o parâmetro for um parâmetro de projeto, o contêiner deverá ser o nome do projeto.
  • Se for um parâmetro de pacote, o contêiner deverá ser o nome do pacote com a extensão .dtsx.
  • value Valor do parâmetro.
  • Quando valueType é referenciado: o valor é uma referência a uma variável de ambiente no tipo cadeia de caracteres.
  • Quando valueType é literal: Esse atributo dá suporte a qualquer valor JSON booliano, de número e cadeia de caracteres válido.
  • O valor será convertido para o tipo de parâmetro de destino. O erro ocorrerá se não for possível convertê-lo.
  • O valor de null é inválido. A tarefa ignorará esse objeto de parâmetro e emitir um aviso.
  • valueType Tipo do valor do parâmetro. Os tipos válidos são:
    literal: a atributo valor representa um valor literal.
    referenciado: o atributo valor representa uma referência a uma variável de ambiente.
    Atributo de referência
    Propriedade Descrição Observações
    environmentFolder O nome da pasta do ambiente. A pasta será criada se não existir.
    O valor pode ser ".", que representa a pasta pai do projeto, que faz referência ao ambiente.
    environmentName Nome do ambiente referenciado. O ambiente especificado será criado se não existir.
    Atributos de ambiente
    Propriedade Descrição Observações
    name Nome do ambiente. O ambiente será criado se não existir.
    descrição Descrição do ambiente. O valor de nulo será ignorado.
    variáveis Uma matriz de objetos de variável. Cada objeto contém informações de configuração para uma variável de ambiente. Confira Atributos de variáveis para ver o esquema de um objeto de variável.
    Atributos de variáveis
    Propriedade Descrição Observações
    name Nome da variável de ambiente. A variável de ambiente será criada se não existir.
    type Tipo de dados da variável de ambiente. Os tipos válidos são:
    booleano
    byte
    datetime
    decimal
    double
    int16
    int32
    int64
    sbyte
    single
    cadeia de caracteres
    uint32
    uint64
    descrição Descrição da variável de ambiente. O valor de nulo será ignorado.
    value Valor da variável de ambiente. Esse atributo dá suporte a qualquer valor JSON booliano, de número e cadeia de caracteres válido.
    O valor será convertido para o tipo especificado pelo atributo type. Ocorrerá um erro se houver falha na conversão.
    O valor de null é inválido. A tarefa ignorará esse objeto de variável de ambiente e emitir um aviso.
    sensitive Se o valor da variável de ambiente é confidencial. As entradas válidas são:
    true
    false

    Notas de versão

    Versão 1.0.6

    Data de lançamento: 1º de setembro de 2021

    • Versão de GA (disponibilidade geral).

    Versão 1.0.5

    Data de lançamento: 2 de junho de 2021

    • Corrigido um problema em que, às vezes, a Tarefa de Build do SSIS da versão 1.* falhava ao compilar projetos/pacotes com o nível de proteção EncryptSensitiveWithPassword ou EncryptAllWithPassword com o erro "O IV (vetor de inicialização) especificado não corresponde ao tamanho do bloco para este algoritmo".
    • Removido o conteúdo JSON no log da tarefa de Configuração do Catálogo do SSIS quando a "Origem do arquivo de configuração" é "Caminho do arquivo".

    Versão 1.0.4

    Data de lançamento: 21 de abril de 2021

    • Tarefa Build do SSIS versão 1.* (Visualização)
      • Remover a dependência no Visual Studio e no designer do SSIS. A tarefa build pode ser executada no agente hospedado pela Microsoft ou em um agente auto-hospedado com sistema operacional Windows e .NET Framework 4.6.2 ou superior.
      • Não há necessidade de instalar componentes prontos para uso.
      • Suporte ao nível de proteção EncryptionWithPassword e EncryptionAllWithPassword.
    • Tarefa Implantação do SSIS versão 1.* (Visualização)
      • Suporte ao nível de proteção EncryptionWithPassword e EncryptionAllWithPassword.

    Versão 1.0.3

    Data de lançamento: 21 de outubro de 2020

    • Permitir a especificação de sufixo da cadeia de conexão para as tarefas Implantação do SSIS e Configuração do Catálogo do SSIS.

    Versão 1.0.2

    Data de lançamento: 26 de maio de 2020

    • Foi corrigido um problema em que a tarefa de Configuração do Catálogo do SSIS poderia falhar em alguns casos após a conclusão do trabalho de configuração.

    Versão 1.0.1

    Data de lançamento: 9 de maio de 2020

    • Corrigido um problema em que a tarefa de compilação do SSIS sempre compilava toda a solução, mesmo se apenas um único arquivo dtproj estivesse especificado como o caminho do projeto.

    Versão 1.0.0

    Data de lançamento: 8 de maio de 2020

    • Versão de GA (disponibilidade geral).
    • Adicionada uma restrição da versão mínima do .NET Framework no agente. Atualmente, a versão mínima do .NET Framework é 4.6.2.
    • Descrição refinada da tarefa de Build do SSIS e da tarefa de implantação do SSIS.

    Versão 0.2.0, versão prévia

    Data de lançamento: 31 de março de 2020

    • Adicionar Tarefa de Configuração do Catálogo do SSIS.

    Versão 0.1.3 Versão prévia

    Data de lançamento: 19 de janeiro de 2020

    • Corrigido um problema que impedia a implantação do ispac quando seu nome de arquivo original era alterado.

    Versão 0.1.2 Versão prévia

    Data de lançamento: 13 de janeiro de 2020

    • Foram adicionadas informações de exceção mais detalhadas no log da tarefa de implantação do SSIS quando o tipo de destino é SSISDB.
    • Foi corrigido o caminho de destino de exemplo no texto de ajuda do caminho de destino da propriedade da tarefa de implantação do SSIS.

    Versão 0.1.1 versão prévia

    Data de lançamento: 6 de janeiro de 2020

    • Foi adicionada uma restrição do requisito mínimo de versão do agente. Atualmente, a versão mínima do agente deste produto é 2.144.0.
    • Foram corrigidos alguns textos de exibição incorretos para a tarefa de implantação do SSIS.
    • Refinamento de algumas mensagens de erro.

    Versão 0.1.0 Versão prévia

    Data de lançamento: 5 de dezembro de 2019

    Versão inicial das Ferramentas de DevOps do SSIS. Essa é uma versão prévia.

    Próximas etapas