Instalar componentes personalizados pagos ou licenciados para o runtime de integração do Azure-SSIS

APLICA-SE A: Azure Data Factory Azure Synapse Analytics> [! DICA] > Experimente o Data Factory no Microsoft Fabric, uma solução de análise all-in-one para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!]

Este artigo descreve como um ISV pode desenvolver e instalar componentes personalizados pagos ou licenciados para pacotes do SSIS (SQL Server Integration Services) executados no Azure no runtime de integração do Azure-SSIS e proxy com o runtime de integração auto-hospedada.

Instalar componentes personalizados pagos ou licenciados para o runtime de integração do Azure-SSIS

O problema

A natureza do runtime de integração do Azure-SSIS apresenta vários desafios, o que torna inadequados os métodos de licenciamento comuns usados para a instalação local de componentes personalizados. Consequentemente, o IR do Azure-SSIS exige uma abordagem diferente.

  • Os nós de IR do Azure-SSIS são voláteis e podem ser alocados ou liberados a qualquer momento. Por exemplo, você pode iniciar ou parar nós para gerenciar o custo ou aumentar e diminuir vários tamanhos de nó. Como resultado, a associação de uma licença de componente de terceiros a um nó específico usando as informações específicas do computador, como endereço MAC ou ID de CPU, não é mais viável.

  • Você também pode expandir ou reduzir o IR do Azure-SSIS para que o número de nós possa diminuir ou aumentar a qualquer momento.

A solução

Como resultado das limitações dos métodos tradicionais de licenciamento descritos na seção anterior, o IR do Azure-SSIS fornece uma nova solução. Essa solução usa variáveis de ambiente do Windows e variáveis de sistema do SSIS para validação e associação da licença de componentes de terceiros. Os ISVs podem usar essas variáveis para obter informações exclusivas e persistente para um IR do Azure-SSIS, como ID do Cluster e Contagem de Nós do Cluster. Com essas informações, os ISVs podem, em seguida, associar a licença para seu componente ao IR do Azure-SSIS como um cluster. Esta associação usa uma ID que não se altera quando os clientes iniciam ou param, aumentam ou reduzem a escala verticalmente, aumentam ou reduzem a escala horizontalmente ou reconfigurar o IR do SSIS-Azure de qualquer outra forma.

O diagrama a seguir mostra a instalação, a ativação e a associação típicas da licença e os fluxos de validação para componentes de terceiros que usam essas novas variáveis:

Installation of licensed components

Instruções

  1. Os ISVs podem oferecer seus componentes licenciados em várias SKUs ou níveis (por exemplo, único nó, até 5 nós, até 10 nós e assim por diante). O ISV fornece a chave do produto (Product Key) correspondente quando clientes adquirem um produto. O ISV também pode fornecer um contêiner de blob de Armazenamento do Azure que contém um script de instalação do ISV e arquivos associados. Os clientes podem copiar esses arquivos em seu próprio contêiner de armazenamento e modificá-los com sua própria chave do produto (Product Key) (por exemplo, executando IsvSetup.exe -pid xxxx-xxxx-xxxx). Os clientes podem, então, provisionar ou reconfigurar o IR do Azure-SSIS com o URI de SAS do contêiner como parâmetro. Para obter mais informações, consulte Instalação personalizada para o runtime de integração do Azure-SSIS.

  2. Quando o IR do Azure-SSIS é provisionado ou reconfigurado, a instalação do ISV é executada em cada nó para consultar as variáveis de ambiente do Windows, SSIS_CLUSTERID e SSIS_CLUSTERNODECOUNT. Em seguida, o IR do Azure-SSIS envia sua ID de Cluster e a chave do produto (Product Key) licenciado para o servidor de ativação do ISV para gerar uma chave de ativação.

  3. Depois de receber a chave de ativação, a instalação do ISV pode armazenar a chave localmente em cada nó (por exemplo, no Registro).

  4. Quando os clientes executam um pacote que usa o componente licenciado do ISV em um nó do IR do Azure-SSIS, o pacote lê a chave de ativação armazenada localmente e valida em relação à ID de Cluster do nó. O pacote também pode relatar a Contagem de Nós de Cluster para o servidor de ativação do ISV.

    Aqui está um exemplo de código que valida a chave de ativação e relata a contagem de nós do cluster:

    public override DTSExecResult Validate(Connections, VariableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log) 
    
    {                                                                                                                             
    
    Variables vars = null;                                                                                                        
    
    variableDispenser.LockForRead("System::ClusterID");                                                                           
    
    variableDispenser.LockForRead("System::ClusterNodeCount");                                                                    
    
    variableDispenser.GetVariables(ref vars);                                                                                     
    
    // Validate Activation Key with ClusterID                                                                                     
    
    // Report on ClusterNodeCount                                                                                                 
    
    vars.Unlock();                                                                                                                
    
    return base.Validate(connections, variableDispenser, componentEvents, log);                                                   
    
    }
    

Habilitar componentes de fluxo de dados personalizados/de terceiros usando o IR auto-hospedado como um proxy

Para permitir que seus componentes de fluxo de dados personalizados/de terceiros acessem dados locais usando o IR auto-hospedado como um proxy para o Azure-SSIS IR, siga estas instruções:

  1. Instale os componentes de fluxo de dados personalizados/de terceiros destinados ao SQL Server 2017 no Azure-SSIS IR através de configurações personalizadas padrão/expressas.

  2. Crie as seguintes chaves do registro DTSPath no IR auto-hospedado, se elas ainda não existirem:

    1. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPath definido como C:\Program Files\Microsoft SQL Server\140\DTS\
    2. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPath definido como C:\Program Files (x86)\Microsoft SQL Server\140\DTS\
  3. Instale os componentes de fluxo de dados personalizados/de terceiros destinados ao SQL Server 2017 no IR auto-hospedado no DTSPath acima e verifique se o processo de instalação:

    1. Cria as pastas <DTSPath>, <DTSPath>/Connections, <DTSPath>/PipelineComponents, e <DTSPath>/UpgradeMappings, se elas ainda não existirem.

    2. Cria seu próprio arquivo XML para mapeamentos de extensão na pasta <DTSPath>/UpgradeMappings.

    3. Instala todos os assemblies referenciados por seus assemblies de componente de fluxo de dados personalizado/de terceiros no cache de assembly global (GAC).

Veja um exemplo da nossa parceira, a Aecorsoft, que adaptou seus componentes de fluxo de dados para usar nossa configuração personalizada expressa e o IR auto-hospedado como um proxy para o Azure-SSIS IR.

Parceiros do ISV

Você pode encontrar uma lista de parceiros do ISV que adaptaram seus componentes e extensões para o IR do Azure-SSIS no final desta postagem de blog – Enterprise Edition, Instalação Personalizada e Extensibilidade de Terceiros para SSIS no ADF.