Partilhar via


Configurar um IR auto-hospedado como um proxy para um IR do Azure-SSIS

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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 executar pacotes do SQL Server Integration Services (SSIS) num(a) Azure-SSIS Integration Runtime (Azure-SSIS IR) com um runtime de integração autogerido (IR autogerido) configurado como um proxy.

Com esse recurso, você pode acessar dados e executar tarefas no local sem precisar unir seu IR do Azure-SSIS a uma rede virtual. O recurso é útil quando sua rede corporativa tem uma configuração muito complexa ou uma política muito restritiva para que você injete seu IR do Azure-SSIS nela.

Esse recurso só pode ser habilitado na Tarefa de Fluxo de Dados do SSIS e na Execução de Tarefas SQL/Processo por enquanto.

Ativado na Tarefa de Fluxo de Dados, esse recurso o dividirá em duas tarefas de preparo quando aplicável:

  • Tarefa de preparação local: esta tarefa executa o componente de fluxo de dados que se conecta a um armazenamento de dados local no seu IR auto-hospedado. Move dados do armazenamento de dados local para uma área de preparo no Azure Blob Storage ou vice-versa.
  • Tarefa de preparação na nuvem: esta tarefa executa o componente de fluxo de dados que não se conecta a um armazenamento de dados local, no seu IR do Azure-SSIS. Move os dados da zona de preparação no seu Blob Storage do Azure para um repositório de dados na nuvem ou vice-versa.

Se sua Tarefa de Fluxo de Dados mover dados do local para a nuvem, a primeira e a segunda tarefas de preparo serão tarefas locais e de preparo na nuvem, respectivamente. Se a sua Tarefa de Fluxo de Dados mover dados da nuvem para o local, a primeira e a segunda tarefas de preparo serão tarefas de preparo na nuvem e no local, respectivamente. Se a sua Tarefa de Fluxo de Dados transferir dados entre ambientes locais, então as primeira e segunda tarefas de preparo serão ambas tarefas de estágio locais. Se a sua Tarefa de Fluxo de Dados mover dados da nuvem para a nuvem, esse recurso não será aplicável.

Ativado em Executar SQL/Tarefas de Processo, esse recurso irá executá-los em seu IR auto-hospedado.

Outros benefícios e recursos desse recurso permitem, por exemplo, configurar seu IR auto-hospedado em regiões que ainda não são suportadas por um IR do Azure-SSIS e permitir o endereço IP estático público do seu IR auto-hospedado no firewall de suas fontes de dados.

Preparar o IR auto-hospedado

Para usar esse recurso, primeiro crie um data factory e configure um IR do Azure-SSIS nele. Se ainda não tiver feito isso, siga as instruções em Configurar um IR do Azure-SSIS.

Em seguida, deve configurar o seu IR auto-hospedado na mesma fábrica de dados onde está configurado o seu IR do Azure-SSIS. Para tal, consulte Criar uma IR auto-hospedada.

Finalmente, você baixa e instala a versão mais recente do IR auto-hospedado, bem como os drivers adicionais e o tempo de execução, em sua máquina local ou máquina virtual (VM) do Azure, da seguinte maneira:

  • Baixe e instale a versão mais recente do IR auto-hospedado.

  • Habilite a execução do pacote SSIS no nó de tempo de execução de integração auto-hospedado se a versão IR auto-hospedada for 5.28.0 ou posterior.

    A propriedade ExecuteSsisPackage foi introduzida recentemente na versão 5.28.0 do IR self-hosted. Use abaixo a ação de linha de comando IR auto-hospedada para habilitar ou desabilitar a execução do pacote SSIS:

    • -EnableExecuteSsisPackage Habilite a execução do pacote SSIS no nó IR auto-hospedado.

    • -DisableExecuteSsisPackage Desative a execução do pacote SSIS no nó IR auto-hospedado.

    • -GetExecuteSsisPackage

    Os detalhes da linha de comando de IR auto-hospedado referem-se a Configurar um IR auto-hospedado existente por meio do PowerShell local.

    Nó IR auto-hospedado recém-instalado com versão 5.28.0 ou posterior, a propriedade ExecuteSsisPackage está desabilitada por padrão.

    Nó IR auto-hospedado existente atualizado para a versão 5.28.0 ou posterior, a propriedade ExecuteSsisPackage está habilitada por padrão

  • Se você usar OLEDB (Object Linking and Embedding Database), ODBC (Open Database Connectivity) ou conectores ADO.NET em seus pacotes, baixe e instale os drivers relevantes na mesma máquina em que o IR auto-hospedado está instalado, se ainda não tiver feito isso.

    Se você usar a versão anterior do driver OLEDB para SQL Server (SQL Server Native Client [SQLNCLI]), baixe a versão de 64 bits.

    Se você usar a versão mais recente do driver OLEDB para SQL Server (MSOLEDBSQL), baixe a versão de 64 bits.

    Se você usar drivers OLEDB/ODBC/ADO.NET para outros sistemas de banco de dados, como PostgreSQL, MySQL, Oracle e assim por diante, poderá baixar as versões de 64 bits de seus sites.

  • Se você usar componentes de fluxo de dados do Azure Feature Pack em seus pacotes, baixe e instale o Azure Feature Pack para SQL Server 2017 na mesma máquina em que seu IR auto-hospedado está instalado, se ainda não tiver feito isso.

  • Se você ainda não tiver feito isso, baixe e instale a versão de 64 bits do tempo de execução do Visual C++ (VC) na mesma máquina onde seu IR auto-hospedado está instalado.

Habilitar a autenticação do Windows para tarefas locais

Se as tarefas de preparação locais e a execução de tarefas SQL/processar tarefas no seu IR auto-hospedado exigirem autenticação do Windows, você também deverá configurar o recurso de autenticação do Windows no seu IR do Azure-SSIS.

Suas tarefas de preparo local e Executar SQL/Tarefas de Processo serão invocadas com a conta de serviço de IR auto-hospedada (NT SERVICE\DIAHostService, por padrão), e seus armazenamentos de dados serão acessados com a conta de autenticação do Windows. Ambas as contas exigem que determinadas políticas de segurança sejam atribuídas a elas. Na máquina de IR auto-hospedada, vá para Política de Segurança Local>Políticas Locais>Atribuição de Direitos de Utilizador e faça o seguinte:

  1. Atribua as políticas Ajustar cotas de memória para um processo e Substituir um token de nível de processo à conta de serviço do IR auto-hospedado. Isso deve ocorrer automaticamente quando você instala seu IR auto-hospedado com a conta de serviço padrão. Se não, atribua essas políticas manualmente. Se você usar uma conta de serviço diferente, atribua as mesmas políticas a ela.

  2. Atribua a política "Iniciar sessão como serviço" à conta de autenticação do Windows.

Preparar o Serviço Ligado de Armazenamento de Blobs do Azure para o estágio intermédio

Se você ainda não tiver feito isso, crie um serviço vinculado do Armazenamento de Blobs do Azure na mesma fábrica de dados em que seu IR do Azure-SSIS está configurado. Para fazer isso, consulte Criar um serviço vinculado do Azure Data Factory. Faça o seguinte:

  • Para Data Store, selecione Azure Blob Storage.
  • Para Conectar via tempo de execução de integração, selecione AutoResolveIntegrationRuntime (não seu IR auto-hospedado), para que possamos ignorá-lo e usar seu IR do Azure-SSIS em vez disso para buscar credenciais de acesso para seu Armazenamento de Blob do Azure.
  • Para Método de autenticação, selecione Chave de conta, SAS URI, Principal de serviço, Identidade Gerida ou Identidade Gerida Atribuída pelo Usuário.

Gorjeta

Se a sua instância de Data Factory estiver habilitada para Git, um serviço ligado sem autenticação por chave não será publicado imediatamente, o que significa que não poderá salvar o runtime de integração que depende do serviço ligado na sua ramificação de funcionalidades. A autenticação com chave de conta ou URI SAS publicará imediatamente o serviço vinculado.

Gorjeta

Se você selecionar o método Entidade de Serviço, conceda à entidade de serviço pelo menos uma função de Colaborador de Dados de Blob de Armazenamento. Para obter mais informações, consulte o Conector de Armazenamento de Blob do Azure. Se selecionar o método Managed Identity/User-Assigned Managed Identity, conceda à identidade gerida atribuída ao sistema/usuário específica do seu ADF uma função adequada para aceder ao Azure Blob Storage. Para obter mais informações, consulte Acessar o Armazenamento de Blobs do Azure usando a autenticação do Microsoft Entra com a identidade gerenciada atribuída pelo sistema/usuário especificada para seu ADF.

Preparar o serviço associado ao armazenamento Blob do Azure para provisionamento

Configurar um IR do Azure-SSIS com seu IR auto-hospedado como um proxy

Depois de preparar o seu IR autogerido e o serviço associado do Armazenamento de Blob do Azure para preparação, agora pode configurar o seu IR do Azure-SSIS novo ou existente com o IR autogerido como proxy no seu portal ou aplicação de Data Factory. Antes de fazer isso, porém, se o IR existente do Azure-SSIS já estiver em execução, você poderá parar, editar e reiniciá-lo.

  1. No painel de configuração do tempo de execução de integração, ignore as páginas de Configurações gerais e Configurações de implantação selecionando o botão Continuar.

  2. Na página Configurações avançadas, faça o seguinte:

    1. Marque a caixa de seleção Configurar o Self-Hosted Integration Runtime como um proxy para seu Azure-SSIS Integration Runtime .

    2. Na lista suspensa Self-Hosted Integration Runtime, seleccione o seu IR autohospedado existente como um proxy para o IR do Azure-SSIS.

    3. Na lista suspensa Serviço vinculado de armazenamento de staging, selecione o seu serviço vinculado de Armazenamento de Blob do Azure existente ou crie um novo para staging.

    4. Na caixa Caminho de Preparo, especifique um contentor de blobs na sua conta de armazenamento do Azure selecionada ou deixe-a vazia para usar um padrão para preparação.

    5. Selecione o botão Continuar .

    Configurações avançadas com um IR auto-hospedado

Você também pode configurar seu IR do Azure-SSIS novo ou existente com o IR auto-hospedado como um proxy usando o PowerShell.

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access 
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access 

# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data access
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
{
    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
        -DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName

    if(![string]::IsNullOrEmpty($DataProxyStagingPath))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -DataProxyStagingPath $DataProxyStagingPath
    }
}
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

Habilitar pacotes SSIS para usar um proxy

Usando o SSDT mais recente, quer como a extensão de Projetos SSIS para o Visual Studio, quer como um instalador autónomo, pode encontrar uma nova ConnectByProxy propriedade nos gestores de ligações para componentes de fluxo de dados suportados e uma ExecuteOnProxy propriedade nas tarefas de execução de SQL/processo.

Ao criar novos pacotes contendo Tarefas de Fluxo de Dados com componentes que acessam dados no local, você pode habilitar a ConnectByProxy propriedade definindo-a como True no painel Propriedades dos gerenciadores de conexões relevantes.

Ao criar novos pacotes que contenham Tarefas de Executar SQL/Processar a serem executadas localmente, pode habilitar a propriedade ExecuteOnProxy definindo-a como True no painel de Propriedades das próprias tarefas relevantes.

Ativar propriedade ConnectByProxy/ExecuteOnProxy

Você também pode habilitar as ConnectByProxy/ExecuteOnProxy propriedades ao executar pacotes existentes, sem precisar alterá-los manualmente, um por um. Existem duas opções:

  • Opção A: Abra, reconstrua e reimplante o projeto que contém esses pacotes com o SSDT mais recente para ser executado em seu IR do Azure-SSIS. Em seguida, pode habilitar a ConnectByProxy propriedade definindo-a como True para os gestores de ligação relevantes que aparecem na guia Gestores de Ligação da janela pop-up de Execução de Pacote quando estiver a executar pacotes do SSMS.

    Habilitar a propriedade ConnectByProxy/ExecuteOnProxy2

    Você também pode habilitar a ConnectByProxy propriedade definindo-a como True para os gerenciadores de conexões relevantes que aparecem na guia Gerenciadores de Conexões da atividade Executar Pacote SSIS quando estiver a executá-los em pipelines do Data Factory.

    Habilitar a propriedade ConnectByProxy/ExecuteOnProxy3

  • Opção B: Reimplante o projeto que contém esses pacotes para ser executado em seu IR SSIS. Em seguida,ConnectByProxy/ExecuteOnProxy\Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/ você pode habilitar as \Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy]propriedades fornecendo seus caminhos de propriedade e definindo-as como True como substituições de propriedade na guia Avançado da janela pop-up Executar pacote quando estiver executando pacotes do SSMS.

    Ativar a propriedade ConnectByProxy/ExecuteOnProxy4

    Você também pode habilitar as propriedades ConnectByProxy/ExecuteOnProxy fornecendo seus caminhos de propriedade \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy] e definindo-os como True nas substituições de propriedade na aba Substituições de Propriedade da atividade Executar Pacote SSIS quando estiver executando pacotes em pipelines do Data Factory.

    Habilite a propriedade ConnectByProxy/ExecuteOnProxy5

Depurar as tarefas locais e as tarefas de preparo na nuvem

No seu IR auto-hospedado, pode encontrar os registos de execução na pasta C:\ProgramData\SSISTelemetry e os registos de execução de tarefas de configuração no local e a execução de tarefas SQL/Processo na pasta C:\ProgramData\SSISTelemetry\ExecutionLog. Você pode encontrar os logs de execução de tarefas de preparo na nuvem em seu SSISDB, caminhos de arquivo de log especificados ou Azure Monitor, dependendo se você armazena seus pacotes no SSISDB, habilita a integração do Azure Monitor, etc. Você também pode encontrar as IDs exclusivas de tarefas de preparo locais nos logs de execução de tarefas de preparo na nuvem.

ID único da primeira tarefa de preparação

Se tiver gerado pedidos de suporte ao cliente, pode selecionar o botão Enviar logs no separador Diagnóstico do Microsoft Integration Runtime Configuration Manager instalado no seu IR autogerido para enviar logs de operação/execução recentes para que possamos investigar.

Cobrança das tarefas locais e tarefas de preparo na nuvem

As tarefas de preparação no local e as tarefas Executar SQL/Processo que são executadas no seu IR auto-hospedado são cobradas separadamente, tal como qualquer atividade de movimentação de dados que corre num IR auto-hospedado. Isso é especificado no artigo de preços do pipeline de dados do Azure Data Factory.

As tarefas de preparo na nuvem executadas no IR do Azure-SSIS não são cobradas separadamente, mas o IR do Azure-SSIS em execução é cobrado conforme especificado no artigo de preços do IR do Azure-SSIS.

Impor TLS 1.2

Se você precisar acessar armazenamentos de dados que foram configurados para usar apenas a criptografia mais forte/protocolo de rede mais seguro (TLS 1.2), incluindo seu Armazenamento de Blob do Azure para preparação, deverá habilitar apenas o TLS 1.2 e desabilitar versões SSL/TLS mais antigas ao mesmo tempo em seu IR auto-hospedado. Para fazer isso, você pode baixar e executar o script main.cmd de https://github.com/Azure/Azure-DataFactory/tree/main/SamplesV2/SQLServerIntegrationServices/publicpreview/CustomSetupScript/UserScenarios/TLS%201.2.

Limitações atuais

  • Apenas os componentes de fluxo de dados que são internos/pré-instalados no Azure-SSIS IR Standard Edition, exceto componentes Hadoop/HDFS/DQS, são suportados no momento, consulte todos os componentes internos/pré-instalados no IR do Azure-SSIS.
  • Apenas componentes de fluxo de dados personalizados/de terceiros que são escritos em código gerenciado (.NET Framework) são suportados atualmente - aqueles escritos em código nativo (C++) não são suportados no momento.
  • No momento, não há suporte para a alteração de valores de variáveis em tarefas locais e de preparo na nuvem.
  • A alteração dos valores de variáveis do tipo objeto em tarefas de preparação no local não será refletida em outras tarefas.
  • ParameterMapping no código-fonte OLEDB não é suportado no momento. Como solução alternativa, use SQL Command From Variable como AccessMode e use Expression para inserir as suas variáveis/parâmetros num comando SQL. Como ilustração, consulte o pacote ParameterMappingSample.dtsx que pode ser encontrado na pasta SelfHostedIRProxy/Limitations do nosso contêiner de blob de visualização pública. Usando o Gerenciador de Armazenamento do Azure, você pode se conectar ao nosso contêiner de blob de visualização pública inserindo o URI SAS acima.

Depois de configurar o seu IR próprio como proxy para o seu IR Azure-SSIS, pode implantar e executar os seus pacotes para aceder a dados e/ou executar instruções/processos SQL localmente, como atividades Executar Pacote SSIS em pipelines do Data Factory. Para saber como, consulte Executar pacotes SSIS como Executar atividades de pacote SSIS em pipelines do Data Factory. Veja também nossos blogs: Execute qualquer SQL em qualquer lugar em 3 etapas fáceis com o SSIS no Azure Data Factory e execute qualquer processo em qualquer lugar em 3 etapas fáceis com o SSIS no Azure Data Factory.