自定义 Azure-SSIS Integration Runtime 的安装Customize the setup for an Azure-SSIS Integration Runtime

适用于:是 Azure 数据工厂否 Azure Synapse Analytics(预览版)APPLIES TO: yesAzure Data Factory noAzure Synapse Analytics (Preview)

可以通过自定义安装程序在 Azure 数据工厂 (ADF) 中自定义 Azure-SQL Server Integration Services (SSIS) Integration Runtime (IR)。You can customize your Azure-SQL Server Integration Services (SSIS) Integration Runtime (IR) in Azure Data Factory (ADF) via custom setups. 可以通过它们在预配或重新配置 Azure-SSIS IR 期间添加你自己的步骤。They allow you to add your own steps during the provisioning or reconfiguration of your Azure-SSIS IR.

使用自定义安装程序可以更改 Azure-SSIS IR 的默认操作配置或环境。By using custom setups, you can alter the default operating configuration or environment of your Azure-SSIS IR. 例如,可以启动其他 Windows 服务、保存访问凭据以便进行文件共享,或者使用强加密/更安全的网络协议 (TLS 1.2)。For example, to start additional Windows services, persist access credentials for file shares, or use strong cryptography/more secure network protocol (TLS 1.2). 或者,可以在 Azure-SSIS IR 的每个节点上安装其他组件,例如程序集、驱动程序或扩展。Or you can install additional components, such as assemblies, drivers, or extensions, on each node of your Azure-SSIS IR. 它们可以是自定义的、开源的或第三方的组件。They can be custom-made, Open Source, or 3rd party components. 有关内置/已预安装组件的详细信息,请参阅 Azure-SSIS IR 上的内置/已预安装组件For more information about built-in/preinstalled components, see Built-in/preinstalled components on Azure-SSIS IR.

可以通过两种方式在 Azure-SSIS IR 上执行自定义安装:You can do custom setups on your Azure-SSIS IR in either of two ways:

  • 使用脚本的标准自定义安装:准备一个脚本及其关联的文件,并将其全部上传到 Azure 存储帐户中的 Blob 容器。Standard custom setup with a script: Prepare a script and its associated files, and upload them all together to a blob container in your Azure storage account. 然后安装或重新配置 Azure-SSIS IR 时,为容器提供共享访问签名 (SAS) 统一资源标识符 (URI)。You then provide a Shared Access Signature (SAS) Uniform Resource Identifier (URI) for your container when you set up or reconfigure your Azure-SSIS IR. 然后,Azure-SSIS IR 的每个节点将从该容器下载该脚本及其关联的文件,并使用提升的权限运行自定义安装。Each node of your Azure-SSIS IR then downloads the script and its associated files from your container and runs your custom setup with elevated permissions. 自定义安装完成后,每个节点会将标准执行输出和其他日志上传到容器中。When your custom setup is finished, each node uploads the standard output of execution and other logs to your container.
  • 无需脚本的快速自定义安装:运行一些常见的系统配置和 Windows 命令,或安装一些流行的或推荐的其他组件,而无需使用任何脚本。Express custom setup without a script: Run some common system configurations and Windows commands or install some popular or recommended additional components without using any scripts.

无论使用标准还是快速自定义安装程序,都可安装免费(无许可证)组件和付费(带许可证)组件。You can install both free (unlicensed) and paid (licensed) components with standard and express custom setups. 如果你是独立软件供应商 (ISV),请参阅为 Azure-SSIS IR 开发付费或带许可证的组件If you're an independent software vendor (ISV), see Develop paid or licensed components for Azure-SSIS IR.

重要

为了利用将来的增强功能,建议对采用自定义设置的 Azure-SSIS IR 使用 v3 或更高版本的节点系列。To benefit from future enhancements, we recommend using v3 or later series of nodes for your Azure-SSIS IR with custom setup.

当前限制Current limitations

以下限制仅适用于标准自定义安装:The following limitations apply only to standard custom setups:

  • 若要在脚本中使用 gacutil.exe 将程序集安装到全局程序集缓存 (GAC),需要在自定义安装过程中提供 gacutil.exeIf you want to use gacutil.exe in your script to install assemblies in the global assembly cache (GAC), you need to provide gacutil.exe as part of your custom setup. 或者,可以使用稍后在“说明”部分所述的“公共预览版”容器中提供的副本。Or you can use the copy that's provided in our Public Preview container, discussed later in the "Instructions" section.

  • 若要在脚本中引用某个子文件夹,请注意 msiexec.exe 不支持使用 .\ 表示法引用根文件夹。If you want to reference a subfolder in your script, msiexec.exe doesn't support the .\ notation to reference the root folder. 请使用类似 msiexec /i "MySubfolder\MyInstallerx64.msi" ... 的命令,而不要使用 msiexec /i ".\MySubfolder\MyInstallerx64.msi" ...Use a command such as msiexec /i "MySubfolder\MyInstallerx64.msi" ... instead of msiexec /i ".\MySubfolder\MyInstallerx64.msi" ....

  • Azure-SSIS IR 当前不支持管理共享,或 Windows 自动创建的隐藏的网络共享。Administrative shares, or hidden network shares that are automatically created by Windows, are currently not supported on the Azure-SSIS IR.

  • Azure-SSIS IR 不支持 IBM iSeries Access ODBC 驱动程序。The IBM iSeries Access ODBC driver is not supported on the Azure-SSIS IR. 在自定义安装过程中,可能会出现安装错误。You might see installation errors during your custom setup. 如果出现,请联系 IBM 支持人员获取帮助。If you do, contact IBM support for assistance.

先决条件Prerequisites

备注

本文进行了更新,以便使用新的 Azure PowerShell Az 模块。This article has been updated to use the new Azure PowerShell Az module. 你仍然可以使用 AzureRM 模块,至少在 2020 年 12 月之前,它将继续接收 bug 修补程序。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 若要详细了解新的 Az 模块和 AzureRM 兼容性,请参阅新 Azure Powershell Az 模块简介To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. 有关 Az 模块安装说明,请参阅安装 Azure PowerShellFor Az module installation instructions, see Install Azure PowerShell.

若要自定义 Azure-SSIS IR,需要准备好以下各项:To customize your Azure-SSIS IR, you need the following items:

说明Instructions

可以使用 ADF UI 上的自定义安装来预配或重新配置 Azure-SSIS IR。You can provision or reconfigure your Azure-SSIS IR with custom setups on ADF UI. 若要使用 PowerShell 执行相同操作,请下载并安装 Azure PowerShellIf you want to do the same using PowerShell, download and install Azure PowerShell.

标准自定义安装Standard custom setup

若要在 ADF UI 上为 Azure-SSIS IR 预配或重新配置标准自定义安装程序,请完成以下步骤。To provision or reconfigure your Azure-SSIS IR with standard custom setups on ADF UI, complete the following steps.

  1. 准备自定义安装脚本及其关联的文件(例如 .bat、.cmd、.exe、.dll、.msi 或 .ps1 文件)。Prepare your custom setup script and its associated files (for example, .bat, .cmd, .exe, .dll, .msi, or .ps1 files).

    • 必须创建一个名为 main.cmd 的脚本文件,即自定义安装程序的入口点。You must have a script file named main.cmd, which is the entry point of your custom setup.
    • 为了确保脚本能够以无提示方式执行,你应该先在本地计算机上对其进行测试。To ensure that the script can be silently executed, you should test it on your local machine first.
    • 若要将其他工具(例如 msiexec.exe)生成的其他日志上传到容器,请在脚本中指定预定义的环境变量 CUSTOM_SETUP_SCRIPT_LOG_DIR 作为日志文件夹(例如 msiexec /i xxx.msi /quiet /lv %CUSTOM_SETUP_SCRIPT_LOG_DIR%\install.log)。If you want additional logs generated by other tools (for example, msiexec.exe) to be uploaded to your container, specify the predefined environment variable, CUSTOM_SETUP_SCRIPT_LOG_DIR, as the log folder in your scripts (for example, msiexec /i xxx.msi /quiet /lv %CUSTOM_SETUP_SCRIPT_LOG_DIR%\install.log).
  2. 下载、安装并打开 Azure 存储资源管理器Download, install, and open Azure Storage Explorer.

    a.a. 在“(本地和附加)”下面,右键单击“存储帐户”并选择“连接到 Azure 存储”。 Under (Local and Attached), right-click Storage Accounts, and then select Connect to Azure storage.

    连接到 Azure 存储

    b.b. 依次选择“使用存储帐户名和密钥”、“下一步”。 Select Use a storage account name and key, and then select Next.

    使用存储帐户名称和密钥

    c.c. 输入 Azure 存储帐户名和密钥,并依次选择“下一步”、“连接”。 Enter your Azure storage account name and key, select Next, and then select Connect.

    提供存储帐户名称和密钥

    d.d. 在已连接的 Azure 存储帐户下面,右键单击“Blob 容器”,选择“创建 Blob 容器”,并为新容器命名。 Under your connected Azure storage account, right-click Blob Containers, select Create Blob Container, and name the new container.

    创建 Blob 容器

    e.e. 选择新容器并上传自定义安装脚本及其关联的文件。Select the new container, and upload your custom setup script and its associated files. 请务必将 main.cmd 上传到容器的顶级目录,而不要上传到任何文件夹中。Make sure that you upload main.cmd at the top level of your container, not in any folder. 你的容器应该仅包含所需的自定义安装程序文件,以便稍后将这些文件下载到 Azure-SSIS IR 时不会花费太长的时间。Your container should contain only the necessary custom setup files, so downloading them to your Azure-SSIS IR later won't take a long time. 自定义安装的最大持续时间目前设置为 45 分钟,45 分钟后会超时。这包括从容器下载所有文件并将其安装在 Azure-SSIS IR 上所花费的时间。The maximum duration of a custom setup is currently set at 45 minutes before it times out. This includes the time to download all files from your container and install them on the Azure-SSIS IR. 如果安装需要更长的时间,请提交支持票证。If setup requires more time, raise a support ticket.

    将文件上传到 Blob 容器

    f.f. 右键单击容器,并选择“获取共享访问签名”。Right-click the container, and then select Get Shared Access Signature.

    获取容器的共享访问签名

    g.g. 为容器创建一个过期时间足够长且拥有读取/写入/列出权限的 SAS URI。Create the SAS URI for your container with a sufficiently long expiration time and with read/write/list permission. 你需要使用该 SAS URI 来下载并运行自定义安装程序脚本及其关联文件。You need the SAS URI to download and run your custom setup script and its associated files. 每当将 Azure-SSIS IR 的任何节点重置映像或重启时,都会发生这种情况。This happens whenever any node of your Azure-SSIS IR is reimaged or restarted. 你还需要拥有写入权限才能上传安装执行日志。You also need write permission to upload setup execution logs.

    重要

    确保在 Azure-SSIS IR 的整个生命周期内(从创建到删除),尤其是在此期间你经常停止并启动 Azure-SSIS IR 时,SAS URI 不会过期,并且自定义安装资源始终可用。Ensure that the SAS URI doesn't expire and the custom setup resources are always available during the whole lifecycle of your Azure-SSIS IR, from creation to deletion, especially if you regularly stop and start your Azure-SSIS IR during this period.

    生成容器的共享访问签名

    h.如果该值不存在,请单击“添加行”。h. 复制并保存容器的 SAS URI。Copy and save the SAS URI of your container.

    复制并保存共享访问签名

  3. 在“Integration Runtime 安装程序”窗格的“高级设置”页上选中“使用其他系统配置/组件安装来自定义 Azure-SSIS Integration Runtime”复选框。Select the Customize your Azure-SSIS Integration Runtime with additional system configurations/component installations check box on the Advanced settings page of Integration runtime setup pane. 接下来,请在“自定义安装程序容器 SAS URI”文本框中输入容器的 SAS URI。Next, enter the SAS URI of your container in the Custom setup container SAS URI text box.

    包含自定义安装的高级设置

标准自定义安装程序完成并且 Azure-SSIS IR 启动之后,可在容器的 main.cmd.log 文件夹中找到所有自定义安装程序日志。After your standard custom setup finishes and your Azure-SSIS IR starts, you can find all custom setup logs in the main.cmd.log folder of your container. 它们包括 main.cmd 的标准输出和其他执行日志。They include the standard output of main.cmd and other execution logs.

快速自定义安装Express custom setup

若要在 ADF UI 上为 Azure-SSIS IR 预配或重新配置快速自定义安装程序,请完成以下步骤。To provision or reconfigure your Azure-SSIS IR with express custom setups on ADF UI, complete the following steps.

  1. 在“Integration Runtime 安装程序”窗格的“高级设置”页上选中“使用其他系统配置/组件安装来自定义 Azure-SSIS Integration Runtime”复选框。Select the Customize your Azure-SSIS Integration Runtime with additional system configurations/component installations check box on the Advanced settings page of Integration runtime setup pane.

  2. 选择“新建”打开“添加快速自定义安装程序”窗格,然后在“快速自定义安装程序类型”下拉列表中选择一种类型。 Select New to open the Add express custom setup pane, and then select a type in the Express custom setup type drop-down list. 我们目前提供的快速自定义安装程序用于运行 cmdkey 命令、添加环境变量、安装 Azure PowerShell 以及安装许可的组件。We currently offer express custom setups for running cmdkey command, adding environment variables, installing Azure PowerShell, and installing licensed components.

运行 cmdkey 命令Running cmdkey command

如果为快速自定义安装程序选择“运行 cmdkey 命令”类型,则可在 Azure-SSIS IR 上运行 Windows cmdkey 命令。If you select the Run cmdkey command type for your express custom setup, you can run the Windows cmdkey command on your Azure-SSIS IR. 为此,请分别在“/Add”、“/User”和“/Pass”文本框中输入目标计算机名或域名、用户名或帐户名以及密码或帐户密钥。 。To do so, enter your targeted computer name or domain name, username or account name, and password or account key in the /Add, /User, and /Pass text boxes, respectively. 这样即可为 Azure-SSIS IR 上的 SQL Server、文件共享或 Azure 文件存储持久保留访问凭据。This will allow you to persist access credentials for SQL Servers, file shares, or Azure Files on your Azure-SSIS IR. 例如,若要访问 Azure 文件存储,可以为“/Add”、“/User”和“/Pass”分别输入 YourAzureStorageAccountName.file.core.chinacloudapi.cnazure\YourAzureStorageAccountNameYourAzureStorageAccountKey。 。For example, to access Azure Files, you can enter YourAzureStorageAccountName.file.core.chinacloudapi.cn, azure\YourAzureStorageAccountName, and YourAzureStorageAccountKey for /Add, /User, and /Pass, respectively. 这类似于在本地计算机上运行 Windows cmdkey 命令。This is similar to running the Windows cmdkey command on your local machine.

添加环境变量Adding environment variables

如果为快速自定义安装程序选择“添加环境变量”类型,则可在 Azure-SSIS IR 上添加 Windows 环境变量。If you select the Add environment variable type for your express custom setup, you can add a Windows environment variable on your Azure-SSIS IR. 为此,请分别在“变量名称”和“变量值”文本框中输入环境变量名称和值。 To do so, enter your environment variable name and value in the Variable name and Variable value text boxes, respectively. 这样,便可在 Azure-SSIS IR 上运行的包中使用环境变量,例如,在脚本组件/任务中。This will allow you to use the environment variable in your packages that run on Azure-SSIS IR, for example in Script Components/Tasks. 这类似于在本地计算机上运行 Windows set 命令。This is similar to running the Windows set command on your local machine.

安装 Azure PowerShellInstalling Azure PowerShell

如果为快速自定义安装程序选择“安装 Azure PowerShell”类型,则可在 Azure-SSIS IR 上安装 PowerShell 的 Az 模块。If you select the Install Azure PowerShell type for your express custom setup, you can install the Az module of PowerShell on your Azure-SSIS IR. 为此,请在支持的版本列表中输入所需的 Az 模块版本号 (x.y.z)。To do so, enter the Az module version number (x.y.z) you want from a list of supported ones. 这样即可在包中运行 Azure PowerShell cmdlet/脚本来管理 Azure 资源,例如 Azure Analysis Services (AAS)This will allow you to run Azure PowerShell cmdlets/scripts in your packages to manage Azure resources, for example Azure Analysis Services (AAS).

安装许可的组件Installing licensed components

如果为快速自定义安装程序选择“安装许可的组件”类型,则可在“组件名”下拉列表中选择来自我们的 ISV 合作伙伴的集成组件: If you select the Install licensed component type for your express custom setup, you can then select an integrated component from our ISV partners in the Component name drop-down list:

  • 如果选择“SentryOne Task Factory”组件,可在 Azure-SSIS IR 上安装 SentryOne 提供的 Task Factory 组件套件。If you select the SentryOne's Task Factory component, you can install the Task Factory suite of components from SentryOne on your Azure-SSIS IR. 为此,请在“许可证密钥”文本框中输入预先从他们那里购买的产品许可证密钥。To do so, enter the product license key that you purchased from them beforehand in the License key text box. 当前的集成版本是 2020.1.3。The current integrated version is 2020.1.3.

  • 如果选择“oh22 的 HEDDA.IO”组件,可在 Azure-SSIS IR 上安装 oh22 的 HEDDA.IO 数据质量/清理组件。If you select the oh22's HEDDA.IO component, you can install the HEDDA.IO data quality/cleansing component from oh22 on your Azure-SSIS IR. 为此,需要预先购买其服务。To do so, you need to purchase their service beforehand. 当前的集成版本是 1.0.14。The current integrated version is 1.0.14.

  • 如果选择“oh22 的 SQLPhonetics.NET”组件,可在 Azure-SSIS IR 上安装 oh22 的 SQLPhonetics.NET 数据质量/匹配组件。If you select the oh22's SQLPhonetics.NET component, you can install the SQLPhonetics.NET data quality/matching component from oh22 on your Azure-SSIS IR. 为此,请在“许可证密钥”文本框中输入预先从他们那里购买的产品许可证密钥。To do so, enter the product license key that you purchased from them beforehand in the License key text box. 当前的集成版本是 1.0.45。The current integrated version is 1.0.45.

  • 如果选择“KingswaySoft 的 SSIS Integration Toolkit”组件,可在 Azure-SSIS IR 上安装适用于 KingswaySoft 所提供的 CRM/ERP/营销/协作应用(例如 Microsoft Dynamics/SharePoint/Project Server、Oracle/Salesforce Marketing Cloud 等)的 SSIS Integration Toolkit 连接器套件。If you select the KingswaySoft's SSIS Integration Toolkit component, you can install the SSIS Integration Toolkit suite of connectors for CRM/ERP/marketing/collaboration apps, such as Microsoft Dynamics/SharePoint/Project Server, Oracle/Salesforce Marketing Cloud, etc. from KingswaySoft on your Azure-SSIS IR. 为此,请在“许可证密钥”文本框中输入预先从他们那里购买的产品许可证密钥。To do so, enter the product license key that you purchased from them beforehand in the License key text box. 当前的集成版本是 2020.1。The current integrated version is 2020.1.

  • 如果选择“KingswaySoft 的 SSIS Productivity Pack”组件,可在 Azure-SSIS IR 上安装 KingswaySoft 所提供的组件的 SSIS Productivity Pack 套件。If you select the KingswaySoft's SSIS Productivity Pack component, you can install the SSIS Productivity Pack suite of components from KingswaySoft on your Azure-SSIS IR. 为此,请在“许可证密钥”文本框中输入预先从他们那里购买的产品许可证密钥。To do so, enter the product license key that you purchased from them beforehand in the License key text box. 当前的集成版本是 20.1。The current integrated version is 20.1.

  • 如果选择“Theobald Software 的 Xtract IS”组件,可在 Azure-SSIS IR 上安装 Theobald Software 所提供的 SAP 系统(ERP、S/4HANA、BW)的 Xtract IS 连接器套件。If you select the Theobald Software's Xtract IS component, you can install the Xtract IS suite of connectors for SAP systems (ERP, S/4HANA, BW) from Theobald Software on your Azure-SSIS IR. 为此,请在“许可证文件”输入框中拖放/上传预先从他们那里购买的产品许可证文件。To do so, drag & drop/upload the product license file that you purchased from them beforehand into the License file input box. 当前的集成版本是 6.1.1.3。The current integrated version is 6.1.1.3.

  • 如果选择“AecorSoft 的 Integration Service”组件,可在 Azure-SSIS IR 上安装 AecorSoft 提供的适用于 SAP 和 Salesforce 系统的 Integration Service 连接器套件。If you select the AecorSoft's Integration Service component, you can install the Integration Service suite of connectors for SAP and Salesforce systems from AecorSoft on your Azure-SSIS IR. 为此,请在“许可证密钥”文本框中输入预先从他们那里购买的产品许可证密钥。To do so, enter the product license key that you purchased from them beforehand in the License key text box. 当前的集成版本是 3.0.00。The current integrated version is 3.0.00.

添加的快速自定义安装将显示在“高级设置”页上。Your added express custom setups will appear on the Advanced settings page. 若要删除它们,请选中其复选框,然后选择“删除”。To remove them, select their check boxes, and then select Delete.

Azure PowerShellAzure PowerShell

若要通过 Azure PowerShell 使用自定义安装来预配或重新配置 Azure-SSIS IR,请完成以下步骤。To provision or reconfigure your Azure-SSIS IR with custom setups using Azure PowerShell, complete the following steps.

  1. 如果 Azure-SSIS IR 已启动/正在运行,请先将其停止。If your Azure-SSIS IR is already started/running, stop it first.

  2. 然后,可以在启动 Azure-SSIS IR 之前,通过运行 Set-AzDataFactoryV2IntegrationRuntime cmdlet 来添加或删除自定义设置。You can then add or remove custom setups by running the Set-AzDataFactoryV2IntegrationRuntime cmdlet before you start your Azure-SSIS IR.

    $ResourceGroupName = "[your Azure resource group name]"
    $DataFactoryName = "[your data factory name]"
    $AzureSSISName = "[your Azure-SSIS IR name]"
    # Custom setup info: Standard/express custom setups
    $SetupScriptContainerSasUri = "" # OPTIONAL to provide a SAS URI of blob container for standard custom setup where your script and its associated files are stored
    $ExpressCustomSetup = "[RunCmdkey|SetEnvironmentVariable|InstallAzurePowerShell|SentryOne.TaskFactory|oh22is.SQLPhonetics.NET|oh22is.HEDDA.IO|KingswaySoft.IntegrationToolkit|KingswaySoft.ProductivityPack|Theobald.XtractIS|AecorSoft.IntegrationService or leave it empty]" # OPTIONAL to configure an express custom setup without script
    
    # Add custom setup parameters if you use standard/express custom setups
    if(![string]::IsNullOrEmpty($SetupScriptContainerSasUri))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -SetupScriptContainerSasUri $SetupScriptContainerSasUri
    }
    if(![string]::IsNullOrEmpty($ExpressCustomSetup))
    {
        if($ExpressCustomSetup -eq "RunCmdkey")
        {
            $addCmdkeyArgument = "YourFileShareServerName or YourAzureStorageAccountName.file.core.chinacloudapi.cn"
            $userCmdkeyArgument = "YourDomainName\YourUsername or azure\YourAzureStorageAccountName"
            $passCmdkeyArgument = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourPassword or YourAccessKey")
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.CmdkeySetup($addCmdkeyArgument, $userCmdkeyArgument, $passCmdkeyArgument)
        }
        if($ExpressCustomSetup -eq "SetEnvironmentVariable")
        {
            $variableName = "YourVariableName"
            $variableValue = "YourVariableValue"
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.EnvironmentVariableSetup($variableName, $variableValue)
        }
        if($ExpressCustomSetup -eq "InstallAzurePowerShell")
        {
            $moduleVersion = "YourAzModuleVersion"
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.AzPowerShellSetup($moduleVersion)
        }
        if($ExpressCustomSetup -eq "SentryOne.TaskFactory")
        {
            $licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
        }
        if($ExpressCustomSetup -eq "oh22is.SQLPhonetics.NET")
        {
            $licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
        }
        if($ExpressCustomSetup -eq "oh22is.HEDDA.IO")
        {
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup)
        }
        if($ExpressCustomSetup -eq "KingswaySoft.IntegrationToolkit")
        {
            $licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
        }
        if($ExpressCustomSetup -eq "KingswaySoft.ProductivityPack")
        {
            $licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
        }    
        if($ExpressCustomSetup -eq "Theobald.XtractIS")
        {
            $jsonData = Get-Content -Raw -Path YourLicenseFile.json
            $jsonData = $jsonData -replace '\s',''
            $jsonData = $jsonData.replace('"','\"')
            $licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString($jsonData)
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
        }
        if($ExpressCustomSetup -eq "AecorSoft.IntegrationService")
        {
            $licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
            $setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
        }
        # Create an array of one or more express custom setups
        $setups = New-Object System.Collections.ArrayList
        $setups.Add($setup)
    
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -ExpressCustomSetup $setups
    }
    Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -Force
    

标准自定义安装示例Standard custom setup samples

若要查看和重复使用某些标准自定义安装示例,请完成以下步骤。To view and reuse some samples of standard custom setups, complete the following steps.

  1. 使用 Azure 存储资源管理器连接到公共预览版容器。Connect to our Public Preview container using Azure Storage Explorer.

    a.a. 在“(本地和附加)”下面,右键单击“存储帐户”,并依次选择“连接到 Azure 存储”、“使用连接字符串或共享访问签名 URI”、“下一步”。 Under (Local and Attached), right-click Storage Accounts, select Connect to Azure storage, select Use a connection string or a shared access signature URI, and then select Next.

    使用共享访问签名连接到 Azure 存储

    b.b. 选择“使用 SAS URI”,然后在“URI”文本框中输入以下 SAS URI: Select Use a SAS URI and then, in the URI text box, enter the following SAS URI:

    https://ssisazurefileshare.blob.core.chinacloudapi.cn/publicpreview?sp=rl&st=2020-03-25T04:00:00Z&se=2025-03-25T04:00:00Z&sv=2019-02-02&sr=c&sig=WAD3DATezJjhBCO3ezrQ7TUZ8syEUxZZtGIhhP6Pt4I%3D

    提供容器的共享访问签名

    c.c. 依次选择“下一步”、“连接” 。Select Next, and then select Connect.

    d.d. 在左侧窗格中选择已连接的“publicpreview”容器,然后双击“CustomSetupScript”文件夹。In the left pane, select the connected publicpreview container, and then double-click the CustomSetupScript folder. 此文件夹包含以下项:In this folder are the following items:

    • 一个 Sample 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装基本任务的自定义安装程序。A Sample folder, which contains a custom setup to install a basic task on each node of your Azure-SSIS IR. 该任务不会执行任何操作,而是休眠几秒。The task does nothing but sleep for a few seconds. 该文件夹还包含 gacutil 文件夹,其整个内容(gacutil.exegacutil.exe.config1033\gacutlrc.dll)都可以按原样复制到容器中。The folder also contains a gacutil folder, whose entire contents (gacutil.exe, gacutil.exe.config, and 1033\gacutlrc.dll) can be copied as is to your container.

    • 一个 UserScenarios 文件夹,其中包含实际用户方案中的多个自定义安装示例。A UserScenarios folder, which contains several custom setup samples from real user scenarios.

      公共预览版容器的内容

    e.e. 双击“UserScenarios”文件夹以查找以下项:Double-click the UserScenarios folder to find the following items:

    • 一个 .NET FRAMEWORK 3.5 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 .NET Framework 早期版本的自定义安装程序脚本 (main.cmd)。A .NET FRAMEWORK 3.5 folder, which contains a custom setup script (main.cmd) to install an earlier version of the .NET Framework on each node of your Azure-SSIS IR. 某些自定义组件可能需要此版本。This version might be required by some custom components.

    • 一个 BCP 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 SQL Server 命令行实用工具 (MsSqlCmdLnUtils.msi) 的自定义安装程序脚本 (main.cmd)。A BCP folder, which contains a custom setup script (main.cmd) to install SQL Server command-line utilities (MsSqlCmdLnUtils.msi) on each node of your Azure-SSIS IR. 其中一个实用工具是大容量复制程序 (bcp)。One of those utilities is the bulk copy program (bcp).

    • 一个 EXCEL 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装一些 C# 程序集和库的自定义安装程序脚本 (main.cmd)。An EXCEL folder, which contains a custom setup script (main.cmd) to install some C# assemblies and libraries on each node of your Azure-SSIS IR. 可在“脚本任务”中使用它们来动态读取和写入 Excel 文件。You can use them in Script Tasks to dynamically read and write Excel files.

      首先,请下载 ExcelDataReader.dllDocumentFormat.OpenXml.dll,然后将它们连同 main.cmd 一起上传到容器中。First, download ExcelDataReader.dll and DocumentFormat.OpenXml.dll, and then upload them all together with main.cmd to your container. 另外,如果只想使用标准的 Excel 连接器(连接管理器、源和目标),则由于包含它们的 Access 可再发行程序包已预先安装在 Azure-SSIS IR 上,因此无需任何自定义安装程序。Alternatively, if you just want to use the standard Excel connectors (Connection Manager, Source, and Destination), the Access Redistributable that contains them is already preinstalled on your Azure-SSIS IR, so you don't need any custom setup.

    • 一个 MYSQL ODBC 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 MySQL ODBC 驱动程序的自定义安装脚本 (main.cmd)。A MYSQL ODBC folder, which contains a custom setup script (main.cmd) to install the MySQL ODBC drivers on each node of your Azure-SSIS IR. 可以通过此安装程序使用 ODBC 连接器(连接管理器、源和目标)连接到 MySQL 服务器。This setup lets you use the ODBC connectors (Connection Manager, Source, and Destination) to connect to the MySQL server.

      首先,下载最新的 64 位和 32 位版 MySQL ODBC 驱动程序安装程序(例如 mysql-connector-odbc-8.0.13-winx64.msimysql-connector-odbc-8.0.13-win32.msi),然后将它们连同 main.cmd 一起上传到容器中。First, download the latest 64-bit and 32-bit versions of the MySQL ODBC driver installers (for example, mysql-connector-odbc-8.0.13-winx64.msi and mysql-connector-odbc-8.0.13-win32.msi), and then upload them all together with main.cmd to your container.

    • 一个 ORACLE ENTERPRISE 文件夹,其中包含用于在 Azure-SSIS IR 企业版的每个节点上安装 Oracle 连接器和 OCI 驱动程序的自定义安装脚本 (main.cmd) 和无提示安装配置文件 (client.rsp)。An ORACLE ENTERPRISE folder, which contains a custom setup script (main.cmd) and silent installation config file (client.rsp) to install the Oracle connectors and OCI driver on each node of your Azure-SSIS IR Enterprise Edition. 可以通过此安装程序使用 Oracle 连接管理器、源和目标连接到 Oracle 服务器。This setup lets you use the Oracle Connection Manager, Source, and Destination to connect to the Oracle server.

      首先,从 Microsoft 下载中心下载适用于 Oracle 的 Microsoft 连接器 v5.0(AttunitySSISOraAdaptersSetup.msi 和 AttunitySSISOraAdaptersSetup64.msi),并从 Oracle 下载最新的 Oracle 客户端(例如 winx64_12102_client.zip)。First, download Microsoft Connectors v5.0 for Oracle (AttunitySSISOraAdaptersSetup.msi and AttunitySSISOraAdaptersSetup64.msi) from Microsoft Download Center and the latest Oracle client (for example, winx64_12102_client.zip) from Oracle. 接下来,将它们连同 main.cmd 和 client.rsp 一起上传到容器中。Next, upload them all together with main.cmd and client.rsp to your container. 如果使用 TNS 连接到 Oracle,则还需要下载 tnsnames.ora,对其进行编辑,然后将其上传到容器。If you use TNS to connect to Oracle, you also need to download tnsnames.ora, edit it, and upload it to your container. 这样,就可以在安装期间将其复制到 Oracle 安装文件夹中。In this way, it can be copied to the Oracle installation folder during setup.

    • 一个 ORACLE STANDARD ADO.NET 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 Oracle ODP.NET 驱动程序的自定义安装脚本 (main.cmd)。An ORACLE STANDARD ADO.NET folder, which contains a custom setup script (main.cmd) to install the Oracle ODP.NET driver on each node of your Azure-SSIS IR. 可以通过此安装程序使用 ADO.NET 连接管理器、源和目标连接到 Oracle 服务器。This setup lets you use the ADO.NET Connection Manager, Source, and Destination to connect to the Oracle server.

      首先,下载最新的 Oracle ODP.NET 驱动程序(例如 ODP.NET_Managed_ODAC122cR1.zip),然后将其连同 main.cmd 一起上传到容器中。First, download the latest Oracle ODP.NET driver (for example, ODP.NET_Managed_ODAC122cR1.zip), and then upload it together with main.cmd to your container.

    • 一个 ORACLE STANDARD ODBC 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 Oracle ODBC 驱动程序的自定义安装程序脚本 (main.cmd)。An ORACLE STANDARD ODBC folder, which contains a custom setup script (main.cmd) to install the Oracle ODBC driver on each node of your Azure-SSIS IR. 该脚本还配置数据源名称 (DSN)。The script also configures the Data Source Name (DSN). 借助此安装程序,可以使用 ODBC 连接管理器、源和目标或数据源类型为 ODBC 的 Power Query 连接管理器和源连接到 Oracle 服务器。This setup lets you use the ODBC Connection Manager, Source, and Destination or Power Query Connection Manager and Source with the ODBC data source type to connect to the Oracle server.

      首先,下载最新的 Oracle Instant Client(基本包或基本精简包)和 ODBC 包,然后将它们连同 main.cmd 一起上传到容器中:First, download the latest Oracle Instant Client (Basic Package or Basic Lite Package) and ODBC Package, and then upload them all together with main.cmd to your container:

      • 下载 64 位包(基本包:instantclient-basic-windows.x64-18.3.0.0.0dbru.zip;基本精简包:instantclient-basiclite-windows.x64-18.3.0.0.0dbru.zip;ODBC 包:instantclient-odbc-windows.x64-18.3.0.0.0dbru.zipDownload 64-bit packages (Basic Package: instantclient-basic-windows.x64-18.3.0.0.0dbru.zip; Basic Lite Package: instantclient-basiclite-windows.x64-18.3.0.0.0dbru.zip; ODBC Package: instantclient-odbc-windows.x64-18.3.0.0.0dbru.zip)
      • 下载 32 位包(基本包:instantclient-basic-nt-18.3.0.0.0dbru.zip;基本精简包:instantclient-basiclite-nt-18.3.0.0.0dbru.zip;ODBC 包:instantclient-odbc-nt-18.3.0.0.0dbru.zipDownload 32-bit packages (Basic Package: instantclient-basic-nt-18.3.0.0.0dbru.zip; Basic Lite Package: instantclient-basiclite-nt-18.3.0.0.0dbru.zip; ODBC Package: instantclient-odbc-nt-18.3.0.0.0dbru.zip)
    • 一个 ORACLE STANDARD OLEDB 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 Oracle OLEDB 驱动程序的自定义安装脚本 (main.cmd)。An ORACLE STANDARD OLEDB folder, which contains a custom setup script (main.cmd) to install the Oracle OLEDB driver on each node of your Azure-SSIS IR. 可以通过此安装程序使用 OLEDB 连接管理器、源和目标连接到 Oracle 服务器。This setup lets you use the OLEDB Connection Manager, Source, and Destination to connect to the Oracle server.

      首先,下载最新的 Oracle OLEDB 驱动程序(例如 ODAC122010Xcopy_x64.zip),然后将其连同 main.cmd 一起上传到容器中。First, download the latest Oracle OLEDB driver (for example, ODAC122010Xcopy_x64.zip), and then upload it together with main.cmd to your container.

    • 一个 POSTGRESQL ODBC 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 PostgreSQL ODBC 驱动程序的自定义安装脚本 (main.cmd)。A POSTGRESQL ODBC folder, which contains a custom setup script (main.cmd) to install the PostgreSQL ODBC drivers on each node of your Azure-SSIS IR. 可以通过此安装程序使用 ODBC 连接管理器、源和目标连接到 PostgreSQL 服务器。This setup lets you use the ODBC Connection Manager, Source, and Destination to connect to the PostgreSQL server.

      首先,下载最新的 64 位和 32 位版本的 PostgreSQL ODBC 驱动程序安装程序(例如 psqlodbc_x64.msipsqlodbc_x86.msi),然后将它们连同 main.cmd 一起上传到容器中。First, download the latest 64-bit and 32-bit versions of PostgreSQL ODBC driver installers (for example, psqlodbc_x64.msi and psqlodbc_x86.msi), and then upload them all together with main.cmd to your container.

    • 一个 SAP BW 文件夹,其中包含用于在 Azure-SSIS IR 企业版的每个节点上安装 SAP .NET 连接器程序集 (librfc32.dll) 的自定义安装脚本 (main.cmd)。A SAP BW folder, which contains a custom setup script (main.cmd) to install the SAP .NET connector assembly (librfc32.dll) on each node of your Azure-SSIS IR Enterprise Edition. 可以通过此安装程序使用 SAP BW 连接管理器、源和目标连接到 SAP BW 服务器。This setup lets you use the SAP BW Connection Manager, Source, and Destination to connect to the SAP BW server.

      首先,将 64 位或 32 位版本的 librfc32.dll 连同 main.cmd 一起从 SAP 安装文件夹上传到容器中。First, upload the 64-bit or the 32-bit version of librfc32.dll from the SAP installation folder together with main.cmd to your container. 然后,该脚本会在安装期间将 SAP 程序集复制到 %windir%\SysWow64%windir%\System32 文件夹中。The script then copies the SAP assembly to the %windir%\SysWow64 or %windir%\System32 folder during setup.

    • 一个 STORAGE 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 Azure PowerShell 的自定义安装程序脚本 (main.cmd)。A STORAGE folder, which contains a custom setup script (main.cmd) to install Azure PowerShell on each node of your Azure-SSIS IR. 可以通过此安装程序部署并运行 SSIS 包,以便运行用于管理 Azure 存储的 Azure PowerShell cmdlet/脚本This setup lets you deploy and run SSIS packages that run Azure PowerShell cmdlets/scripts to manage your Azure Storage.

      main.cmd、示例 AzurePowerShell.msi(或使用最新版本)和 storage.ps1 复制到容器。Copy main.cmd, a sample AzurePowerShell.msi (or use the latest version), and storage.ps1 to your container. 使用 PowerShell.dtsx 作为包的模板。Use PowerShell.dtsx as a template for your packages. 包模板中合并了 Azure Blob 下载任务(用于下载可修改的 PowerShell 脚本 (storage.ps1))和执行进程任务(用于在每个节点上执行脚本)。The package template combines an Azure Blob Download Task, which downloads a modifiable PowerShell script (storage.ps1), and an Execute Process Task, which executes the script on each node.

    • 一个 TERADATA 文件夹,其中包含自定义安装脚本 (main.cmd)、其关联的文件 (install.cmd) 和安装程序包 ( .msi)。A TERADATA folder, which contains a custom setup script (main.cmd), its associated file (install.cmd), and installer packages (.msi). 这些文件将在 Azure-SSIS IR 企业版的每个节点上安装 Teradata 连接器、Teradata 并行传输程序 (TPT) API 和 ODBC 驱动程序。These files install the Teradata connectors, the Teradata Parallel Transporter (TPT) API, and the ODBC driver on each node of your Azure-SSIS IR Enterprise Edition. 可以通过此安装程序使用 Teradata 连接管理器、源和目标连接到 Teradata 服务器。This setup lets you use the Teradata Connection Manager, Source, and Destination to connect to the Teradata server.

      首先,下载 Teradata 工具和实用工具 15.x zip 文件(例如 TeradataToolsAndUtilitiesBase__windows_indep.15.10.22.00.zip),然后将其连同上述 .cmd.msi 文件一起上传到容器中。First, download the Teradata Tools and Utilities 15.x zip file (for example, TeradataToolsAndUtilitiesBase__windows_indep.15.10.22.00.zip), and then upload it together with the previously mentioned .cmd and .msi files to your container.

    • 一个 TLS 1.2 文件夹,其中包含一个自定义安装程序脚本 (main.cmd),用于在 Azure-SSIS IR 的每个节点上使用强加密和更安全的网络协议 (TLS 1.2)。A TLS 1.2 folder, which contains a custom setup script (main.cmd) to use strong cryptography and more secure network protocol (TLS 1.2) on each node of your Azure-SSIS IR. 此脚本还禁用旧的 SSL/TLS 版本。The script also disables older SSL/TLS versions.

    • 一个 ZULU OPENJDK 文件夹,其中包含用于在 Azure-SSIS IR 的每个节点上安装 Zulu OpenJDK 的自定义安装脚本 (main.cmd) 和 PowerShell 文件 (install_openjdk.ps1)。A ZULU OPENJDK folder, which contains a custom setup script (main.cmd) and PowerShell file (install_openjdk.ps1) to install the Zulu OpenJDK on each node of your Azure-SSIS IR. 借助此安装程序,可使用 Azure Data Lake Store 和 Flexible File 连接器来处理 ORC 和 Parquet 文件。This setup lets you use Azure Data Lake Store and Flexible File connectors to process ORC and Parquet files. 有关详细信息,请参阅 Azure Feature Pack for Integration ServicesFor more information, see Azure Feature Pack for Integration Services.

      首先,下载最新的 Zulu OpenJDK(例如 zulu8.33.0.1-jdk8.0.192-win_x64.zip),然后将其连同 main.cmdinstall_openjdk.ps1 一起上传到容器中。First, download the latest Zulu OpenJDK (for example, zulu8.33.0.1-jdk8.0.192-win_x64.zip), and then upload it together with main.cmd and install_openjdk.ps1 to your container.

      用户方案文件夹中的文件夹

    f.f. 若要重用这些标准自定义安装示例,请将选定文件夹的内容复制到容器中。To reuse these standard custom setup samples, copy the content of selected folder to your container.

  2. 使用 ADF UI 预配或重新配置 Azure-SSIS IR 时,在“Integration Runtime 安装程序”窗格的“高级设置”页上选中“使用其他系统配置/组件安装来自定义 Azure-SSIS Integration Runtime”复选框。When you provision or reconfigure your Azure-SSIS IR on ADF UI, select the Customize your Azure-SSIS Integration Runtime with additional system configurations/component installations check box on the Advanced settings page of Integration runtime setup pane. 接下来,请在“自定义安装程序容器 SAS URI”文本框中输入容器的 SAS URI。Next, enter the SAS URI of your container in the Custom setup container SAS URI text box.

  3. 使用 Azure PowerShell 预配或重新配置 Azure-SSIS IR 时,如果它已经启动/正在运行,则将其停止,使用容器的 SAS URI 作为 SetupScriptContainerSasUri 参数的值运行 Set-AzDataFactoryV2IntegrationRuntime cmdlet,然后启动 Azure-SSIS IR。When you provision or reconfigure your Azure-SSIS IR using Azure PowerShell, stop it if it's already started/running, run the Set-AzDataFactoryV2IntegrationRuntime cmdlet with the SAS URI of your container as the value for SetupScriptContainerSasUri parameter, and then start your Azure-SSIS IR.

  4. 标准自定义安装程序完成并且 Azure-SSIS IR 启动之后,可在容器的 main.cmd.log 文件夹中找到所有自定义安装程序日志。After your standard custom setup finishes and your Azure-SSIS IR starts, you can find all custom setup logs in the main.cmd.log folder of your container. 它们包括 main.cmd 的标准输出和其他执行日志。They include the standard output of main.cmd and other execution logs.

后续步骤Next steps