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, sostituire 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 l'ID applicazione negli appunti.
  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 SSIS di Azure e connetterlo 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.

Collegare 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. Arresta Azure-SSIS IR.
  2. Configurare Azure-SSIS IR per unirsi a una rete virtuale.
  3. Avvia 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 il runtime di integrazione Azure-SSIS per unirsi 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 il runtime di integrazione Azure-SSIS

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:

  • Azure-SSIS IR (Integration Runtime). Questo articolo fornisce informazioni concettuali generali sugli IR, incluso Azure-SSIS IR.
  • Esercitazione: Distribuire pacchetti SSIS in Azure. Questa esercitazione fornisce istruzioni dettagliate per creare il runtime di integrazione Azure-SSIS. Usa database SQL di Azure server per ospitare SSISDB.
  • Creare un runtime di integrazione SSIS di Azure. Questo articolo approfondisce l'esercitazione. Vengono fornite istruzioni sull'uso di un server di database SQL di Azure configurato con un endpoint di servizio di rete virtuale/una regola del firewall IP/un endpoint privato o un'istanza gestita di SQL di Azure che si collega a una rete virtuale per ospitare SSISDB. Mostra come collegare il runtime di integrazione Azure-SSIS a una rete virtuale.
  • Monitorare il runtime di integrazione SSIS di Azure Questo articolo illustra come recuperare e comprendere le informazioni su Azure-SSIS IR.
  • Gestione di un runtime di integrazione SSIS di Azure. In questo articolo viene illustrato come arrestare, avviare o rimuovere Azure-SSIS IR. Viene inoltre mostrato come scalare Azure-SSIS IR aggiungendo più nodi.