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 completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

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 di PowerShell di Azure Synapse Analytics corrispondenti: Set-AzSynapseIntegrationRuntime (Az.Synapse),Start-AzSynapseIntegrationRuntime e Stop-AzSynapseIntegrationRuntime.

Creare le 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]"

Configurare una rete virtuale

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

# Make sure to run this script against the subscription to which the virtual network belongs.
if(![string]::IsNullOrEmpty($VnetId) -and ![string]::IsNullOrEmpty($SubnetName))
{
    # Register to the Azure Batch resource provider
    $BatchApplicationId = "ddbf3205-c6bd-46ae-8127-60eb93363864"
    $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 runtime di integrazione Azure-SSIS e contemporaneamente aggiungerlo a una rete virtuale. Per lo script completo e le istruzioni, vedere Creare un runtime di integrazione Azure-SSIS.

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 runtime di integrazione Azure-SSIS, seguire questa procedura per aggiungerlo a una rete virtuale:

  1. Arrestare azure-SSIS IR.
  2. Configurare il runtime di integrazione Azure-SSIS per l'aggiunta a una rete virtuale.
  3. Avviare azure-SSIS IR.

Arrestare il runtime di integrazione 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 l'aggiunta a una rete virtuale

Per aggiungere il runtime di integrazione Azure-SSIS a una rete virtuale, eseguire il Set-AzDataFactoryV2IntegrationRuntime comando :

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. 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 si espande sull'esercitazione. Vengono fornite istruzioni sull'uso di database SQL di Azure server configurato con un endpoint servizio di rete virtuale/una regola del firewall IP/un endpoint privato o un Istanza gestita di SQL di Azure che unisce una rete virtuale all'host SSISDB. Illustra come aggiungere il runtime di integrazione Azure-SSIS a una rete virtuale.
  • Monitorare un runtime di integrazione SSIS di Azure. Questo articolo illustra come recuperare e comprendere le informazioni sul runtime di integrazione Azure-SSIS.
  • Gestire un runtime di integrazione SSIS di Azure. Questo articolo illustra come arrestare, avviare o eliminare azure-SSIS IR. Illustra anche come aumentare il numero di istanze del runtime di integrazione Azure-SSIS aggiungendo altri nodi.