Condividi tramite


Aggiungere il runtime di integrazione SSIS di Azure a una rete virtuale tramite Azure PowerShell

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo illustra come aggiungere il runtime di integrazione di Azure-SQL Server Integration Services (SSIS) esistente in Azure Data Factory a una rete virtuale tramite Azure PowerShell.

Nota

Per Azure-SSIS IR in Azure Synapse Analytics, eseguire la sostituzione con le interfacce PowerShell di Azure Synapse Analytics corrispondenti: Set-AzSynapseIntegrationRuntime (Az.Synapse), Start-AzSynapseIntegrationRuntime e Stop-AzSynapseIntegrationRuntime.

Creare variabili

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Virtual network info: Azure Resource Manager or Classic
$VnetId = "[your virtual network resource ID or leave it empty]" # REQUIRED if you use Azure SQL Database server configured with a private endpoint/IP firewall rule/virtual network service endpoint or Azure SQL Managed Instance that joins a virtual network to host SSISDB, or if you require access to on-premises data without configuring a self-hosted IR. We recommend Azure Resource Manager virtual network, because classic virtual network will be deprecated soon.
$SubnetName = "[your subnet name or leave it empty]" # WARNING: Use the same subnet as the one used for Azure SQL Database server configured with a virtual network service endpoint or a different subnet from the one used for Azure SQL Managed Instance that joins a virtual network
$SubnetId = $VnetId + '/subnets/' + $SubnetName 
# Virtual network injection method: Standard or Express. For comparison, see https://learn.microsoft.com/azure/data-factory/azure-ssis-integration-runtime-virtual-network-configuration.
$VnetInjectionMethod = "Standard" # Standard by default, whereas Express lets you use the express virtual network injection method
# Public IP address info: OPTIONAL to provide two standard static public IP addresses with DNS name under the same subscription and in the same region as your virtual network
$FirstPublicIP = "[your first public IP address resource ID or leave it empty]"
$SecondPublicIP = "[your second public IP address resource ID or leave it empty]"

Ottenere l'ID dell'applicazione Azure Batch

  1. Passare al portale di Azure.
  2. Nella barra di ricerca digitare Microsoft Azure Batche selezionarlo nell'elenco a discesa, in Microsoft Entra ID.
  3. Nella pagina Microsoft Azure Batch annotare o copiare negli Appunti l'ID applicazione.
  4. Nello script seguente impostare la $BatchApplicationId variabile su questo valore prima di eseguirla.

Configurare una rete virtuale

Prima di poter aggiungere l'IR di integrazione Azure-SSIS a una rete virtuale, è necessario configurare quest'ultima. Per configurare automaticamente le autorizzazioni e le impostazioni della rete virtuale per il tuo runtime di integrazione Azure-SSIS per unirsi a una rete virtuale, aggiungere lo script seguente:

# Make sure to run this script against the subscription to which the virtual network belongs.

$BatchApplicationId = "[REPLACE_WITH_AZURE_BATCH_APP_ID]"

if(![string]::IsNullOrEmpty($VnetId) -and ![string]::IsNullOrEmpty($SubnetName))
{
    # Register to the Azure Batch resource provider
    $BatchObjectId = (Get-AzADServicePrincipal -ServicePrincipalName $BatchApplicationId).Id
    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    while(!(Get-AzResourceProvider -ProviderNamespace "Microsoft.Batch").RegistrationState.Contains("Registered"))
    {
    Start-Sleep -s 10
    }
    if($VnetId -match "/providers/Microsoft.ClassicNetwork/")
    {
        # Assign the VM contributor role to Microsoft.Batch
        New-AzRoleAssignment -ObjectId $BatchObjectId -RoleDefinitionName "Classic Virtual Machine Contributor" -Scope $VnetId
    }
}

Creare un runtime di integrazione Azure-SSIS e aggiungerlo a una rete virtuale

È possibile creare un Azure-SSIS Integration Runtime e contemporaneamente unirlo a una rete virtuale. Per lo script completo e le istruzioni, consulta Crea un Azure-SSIS IR.

Aggiungere un runtime di integrazione Azure-SSIS esistente a una rete virtuale

L'articolo Creare un runtime di integrazione Azure-SSIS illustra come creare un runtime di integrazione Azure-SSIS e aggiungerlo a una rete virtuale nello stesso script. Se si ha già un Azure-SSIS IR, seguire questi passaggi per collegarlo a una rete virtuale:

  1. Arrestare Azure-SSIS IR.
  2. Configurare Azure-SSIS IR per unirsi a una rete virtuale.
  3. Avviare Azure-SSIS IR.

Interrompere l'IR Azure-SSIS

È necessario arrestare il runtime di integrazione Azure-SSIS prima di aggiungerlo a una rete virtuale. Questo comando rilascia tutti i nodi e arresta la fatturazione:

Stop-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force 

Configurare Azure-SSIS IR per aggiungerlo a una rete virtuale.

Per aggiungere Azure-SSIS IR a una rete virtuale, eseguire il comando Set-AzDataFactoryV2IntegrationRuntime.

Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -SubnetId $SubnetId `
    -VNetInjectionMethod $VnetInjectionMethod

# Add public IP address parameters if you use the standard virtual network injection method and bring your own static public IP addresses
if($VnetInjectionMethod -eq "Standard")
{
    if(![string]::IsNullOrEmpty($FirstPublicIP) -and ![string]::IsNullOrEmpty($SecondPublicIP))
    {
        $publicIPs = @($FirstPublicIP, $SecondPublicIP)
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -PublicIPs $publicIPs
    }
}

Avviare Azure-SSIS IR

Per avviare azure-SSIS IR, eseguire il comando seguente:

Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

Se si usa il metodo express/standard virtual network injection, il completamento di questo comando richiede rispettivamente 5/20-30 minuti.

Per altre informazioni su Azure-SSIS IR, vedere gli articoli seguenti: