Instalar componentes personalizados pagos ou licenciados para o Azure-SSIS Integration Runtime

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

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

Instalar componentes personalizados pagos ou licenciados para o Azure-SSIS Integration Runtime

O problema

A natureza do tempo de execução de integração Azure-SSIS apresenta vários desafios, que tornam inadequados os métodos de licenciamento típicos usados para a instalação local de componentes personalizados. Como resultado, o IR do Azure-SSIS requer uma abordagem diferente.

  • Os nós do 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 a escala através de vários tamanhos de nós. Como resultado, vincular uma licença de componente de terceiros a um nó específico usando informações específicas da máquina, como endereço MAC ou ID da CPU, não é mais viável.

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

A solução

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

O diagrama a seguir mostra os fluxos típicos de instalação, ativação e vinculação de licença e 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ários SKUs ou camadas (por exemplo, nó único, até 5 nós, até 10 nós e assim por diante). O ISV fornece a Chave do Produto correspondente quando os clientes compram 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 de 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 (por exemplo, executando IsvSetup.exe -pid xxxx-xxxx-xxxx). Os clientes podem provisionar ou reconfigurar o IR do Azure-SSIS com o URI SAS de seu contêiner como parâmetro. Para mais informações, veja Configuração personalizada do 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 SSIS_CLUSTERID de ambiente do Windows e SSIS_CLUSTERNODECOUNT. Em seguida, o IR do Azure-SSIS envia sua ID de Cluster e a Chave do Produto do produto licenciado para o Servidor de Ativação 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 a valida em relação à ID de Cluster do nó. O pacote também pode, opcionalmente, relatar a contagem de nós de cluster para o servidor de ativação 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);                                                   
    
    }
    

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

Para habilitar seus componentes de fluxo de dados personalizados/de terceiros para acessar dados no local usando IR auto-hospedado como um proxy para IR do Azure-SSIS, siga estas instruções:

  1. Instale seus componentes de fluxo de dados personalizados/de terceiros direcionados ao SQL Server 2017 no IR do Azure-SSIS por meio de configurações personalizadas padrão/expressas.

  2. Crie as seguintes chaves de registo DTSPath no IR auto-alojado se 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 seus componentes de fluxo de dados personalizados/de terceiros direcionados ao SQL Server 2017 em IR auto-hospedado sob o DTSPath acima e certifique-se de que seu processo de instalação:

    1. Cria <DTSPath>, , <DTSPath>/Connections<DTSPath>/PipelineComponentse <DTSPath>/UpgradeMappings pastas se ainda não existirem.

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

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

Aqui está um exemplo de nosso parceiro, Aecorsoft, que adaptou seus componentes de fluxo de dados para usar nossa configuração personalizada expressa e IR auto-hospedado como um proxy para o IR do Azure-SSIS.

Parceiros ISV

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