透過 Azure PowerShell 將 Azure-SSIS 整合執行階段加入虛擬網路

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

此文章說明如何透過 Azure PowerShell,將 Azure Data Factory 中現有的 Azure SQL Server Integration Services (SSIS) 整合執行階段 (IR) 加入虛擬網路。

注意

針對 Azure Synapse Analytics 中的 Azure-SSIS IR,請取代為對應的 Azure Synapse Analytics PowerShell 介面:Set-AzSynapseIntegrationRuntime (Az.Synapse)Start-AzSynapseIntegrationRuntimeStop-AzSynapseIntegrationRuntime

建立變數

$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]"

設定虛擬網路

將 Azure-SSIS IR 加入虛擬網路之前,必須先設定虛擬網路。 若要針對 Azure-SSIS IR 自動設定虛擬網路權限和設定以加入虛擬網路,請新增下列指令碼:

# 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
    }
}

建立 Azure-SSIS IR 並將其加入虛擬網路

您可以建立 Azure-SSIS IR,同時將其加入虛擬網路。 如需完整的指令碼和指示,請參閱建立 Azure-SSIS IR

將現有的 Azure-SSIS IR 加入虛擬網路

建立 Azure-SSIS IR 一文說明如何以相同的指令碼建立 Azure-SSIS IR,並將其加入虛擬網路。 如果您已經具有 Azure-SSIS IR,請遵循下列步驟以將其加入虛擬網路:

  1. 停止您的 Azure-SSIS IR。
  2. 設定 Azure-SSIS IR 以使其準備好加入虛擬網路。
  3. 啟動您的 Azure-SSIS IR。

停止您的 Azure-SSIS IR

您必須先停止 Azure-SSIS IR,才能將其加入虛擬網路。 此命令會釋出其所有節點並停止計費:

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

設定 Azure-SSIS IR 以使其準備好加入虛擬網路

若要將 Azure-SSIS IR 加入虛擬網路,請執行 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
    }
}

啟動您的 Azure-SSIS IR

若要啟動 Azure-SSIS IR,請執行下列命令:

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

如果您使用快速/標準虛擬網路插入方法,此命令分別需要 5/20-30 分鐘才能完成。

如需 Azure-SSIS IR 的詳細資訊,請參閱下列文章:

  • Azure-SSIS IR。 本文提供關於 IR (包括 Azure-SSIS IR) 的一般概念資訊。
  • 教學課程:將 SSIS 套件部署至 Azure。 此教學課程將逐步說明如何建立 Azure-SSIS IR。 其使用 Azure SQL Database 伺服器來裝載 SSISDB。
  • 建立 Azure-SSIS IR。 此文章為教學課程的延伸。 其提供指示,說明如何使用以虛擬網路服務端點/IP 防火牆規則/私人端點所設定的 Azure SQL Database 伺服器,或將虛擬網路加入主機 SSISDB 的 Azure SQL 受控執行個體。 其說明如何將 Azure-SSIS IR 加入虛擬網路。
  • 監視 Azure-SSIS IR。 本文說明如何擷取和了解有關 Azure-SSIS IR 的資訊。
  • 管理 Azure-SSIS IR。 本文說明如何停止、開始或刪除 Azure-SSIS IR。 它還會顯示如何透過新增更多節點來擴增 Azure-SSIS IR。