Skip to content

Commit 764a61e

Browse files
Merge pull request #103046 from swinarko/master
PowerShell updates
2 parents 1609693 + 1986851 commit 764a61e

7 files changed

+535
-169
lines changed

articles/data-factory/create-azure-ssis-integration-runtime.md

Lines changed: 223 additions & 73 deletions
Large diffs are not rendered by default.

articles/data-factory/how-to-configure-azure-ssis-ir-custom-setup.md

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.author: sawinark
1111
manager: mflasko
1212
ms.reviewer: douglasl
1313
ms.custom: seo-lt-2019
14-
ms.date: 12/23/2019
14+
ms.date: 02/01/2020
1515
---
1616

1717
# Customize setup for the Azure-SSIS integration runtime
@@ -126,19 +126,66 @@ To customize your Azure-SSIS IR, you need the following things:
126126

127127
![Advanced settings with custom setups](./media/tutorial-create-azure-ssis-runtime-portal/advanced-settings-custom.png)
128128

129-
When you provision or reconfigure your Azure-SSIS IR with PowerShell, you can add/remove custom setups by running the `Set-AzDataFactoryV2IntegrationRuntime` cmdlet before you start your Azure-SSIS IR.
129+
1. When you provision or reconfigure your Azure-SSIS IR with PowerShell, you can add/remove custom setups by running the `Set-AzDataFactoryV2IntegrationRuntime` cmdlet before you start your Azure-SSIS IR.
130130

131-
For standard custom setups, you can provide the SAS URI of your container as the value for `SetupScriptContainerSasUri` parameter. For example:
132-
133131
```powershell
134-
Set-AzDataFactoryV2IntegrationRuntime -DataFactoryName $MyDataFactoryName `
135-
-Name $MyAzureSsisIrName `
136-
-ResourceGroupName $MyResourceGroupName `
137-
-SetupScriptContainerSasUri $MySetupScriptContainerSasUri
138-
139-
Start-AzDataFactoryV2IntegrationRuntime -DataFactoryName $MyDataFactoryName `
140-
-Name $MyAzureSsisIrName `
141-
-ResourceGroupName $MyResourceGroupName
132+
$ResourceGroupName = "[your Azure resource group name]"
133+
$DataFactoryName = "[your data factory name]"
134+
$AzureSSISName = "[your Azure-SSIS IR name]"
135+
# Custom setup info: Standard/express custom setups
136+
$SetupScriptContainerSasUri = "" # OPTIONAL to provide a SAS URI of blob container for standard custom setup where your script and its associated files are stored
137+
$ExpressCustomSetup = "[RunCmdkey|SetEnvironmentVariable|SentryOne.TaskFactory|oh22is.SQLPhonetics.NET|oh22is.HEDDA.IO or leave it empty]" # OPTIONAL to configure an express custom setup without script
138+
139+
# Add custom setup parameters if you use standard/express custom setups
140+
if(![string]::IsNullOrEmpty($SetupScriptContainerSasUri))
141+
{
142+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
143+
-DataFactoryName $DataFactoryName `
144+
-Name $AzureSSISName `
145+
-SetupScriptContainerSasUri $SetupScriptContainerSasUri
146+
}
147+
if(![string]::IsNullOrEmpty($ExpressCustomSetup))
148+
{
149+
if($ExpressCustomSetup -eq "RunCmdkey")
150+
{
151+
$addCmdkeyArgument = "YourFileShareServerName or YourAzureStorageAccountName.file.core.windows.net"
152+
$userCmdkeyArgument = "YourDomainName\YourUsername or azure\YourAzureStorageAccountName"
153+
$passCmdkeyArgument = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourPassword or YourAccessKey")
154+
$setup = New-Object Microsoft.Azure.Management.DataFactory.Models.CmdkeySetup($addCmdkeyArgument, $userCmdkeyArgument, $passCmdkeyArgument)
155+
}
156+
if($ExpressCustomSetup -eq "SetEnvironmentVariable")
157+
{
158+
$variableName = "YourVariableName"
159+
$variableValue = "YourVariableValue"
160+
$setup = New-Object Microsoft.Azure.Management.DataFactory.Models.EnvironmentVariableSetup($variableName, $variableValue)
161+
}
162+
if($ExpressCustomSetup -eq "SentryOne.TaskFactory")
163+
{
164+
$licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
165+
$setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
166+
}
167+
if($ExpressCustomSetup -eq "oh22is.SQLPhonetics.NET")
168+
{
169+
$licenseKey = New-Object Microsoft.Azure.Management.DataFactory.Models.SecureString("YourLicenseKey")
170+
$setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup, $licenseKey)
171+
}
172+
if($ExpressCustomSetup -eq "oh22is.HEDDA.IO")
173+
{
174+
$setup = New-Object Microsoft.Azure.Management.DataFactory.Models.ComponentSetup($ExpressCustomSetup)
175+
}
176+
# Create an array of one or more express custom setups
177+
$setups = New-Object System.Collections.ArrayList
178+
$setups.Add($setup)
179+
180+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
181+
-DataFactoryName $DataFactoryName `
182+
-Name $AzureSSISName `
183+
-ExpressCustomSetup $setups
184+
}
185+
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
186+
-DataFactoryName $DataFactoryName `
187+
-Name $AzureSSISName `
188+
-Force
142189
```
143190

144191
After your standard custom setup finishes and your Azure-SSIS IR starts, you can find the standard output of `main.cmd` and other execution logs in the `main.cmd.log` folder of your storage container.

articles/data-factory/join-azure-ssis-integration-runtime-virtual-network.md

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ documentationcenter: ''
66
ms.service: data-factory
77
ms.workload: data-services
88
ms.topic: conceptual
9-
ms.date: 12/23/2019
9+
ms.date: 02/01/2020
1010
author: swinarko
1111
ms.author: sawinark
1212
ms.reviewer: douglasl
@@ -423,6 +423,20 @@ After you've configured your Azure Resource Manager virtual network or classic v
423423

424424
[!INCLUDE [updated-for-az](../../includes/updated-for-az.md)]
425425

426+
### Define the variables
427+
428+
```powershell
429+
$ResourceGroupName = "[your Azure resource group name]"
430+
$DataFactoryName = "[your data factory name]"
431+
$AzureSSISName = "[your Azure-SSIS IR name]"
432+
# Virtual network info: Classic or Azure Resource Manager
433+
$VnetId = "[your virtual network resource ID or leave it empty]" # REQUIRED if you use an Azure SQL Database server with IP firewall rules/virtual network service endpoints or a managed instance with private endpoint to host SSISDB, or if you require access to on-premises data without configuring a self-hosted IR. We recommend an Azure Resource Manager virtual network, because classic virtual networks will be deprecated soon.
434+
$SubnetName = "[your subnet name or leave it empty]" # WARNING: Use the same subnet as the one used for your Azure SQL Database server with virtual network service endpoints, or a different subnet from the one used for your managed instance with a private endpoint
435+
# 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
436+
$FirstPublicIP = "[your first public IP address resource ID or leave it empty]"
437+
$SecondPublicIP = "[your second public IP address resource ID or leave it empty]"
438+
```
439+
426440
### Configure a virtual network
427441

428442
Before you can join your Azure-SSIS IR to a virtual network, you need to configure the virtual network. To automatically configure virtual network permissions and settings for your Azure-SSIS IR to join the virtual network, add the following script:
@@ -458,26 +472,15 @@ The [Create an Azure-SSIS IR](create-azure-ssis-integration-runtime.md) article
458472
1. Configure the Azure-SSIS IR to join the virtual network.
459473
1. Start the Azure-SSIS IR.
460474

461-
### Define the variables
462-
463-
```powershell
464-
$ResourceGroupName = "<your Azure resource group name>"
465-
$DataFactoryName = "<your Data Factory name>"
466-
$AzureSSISName = "<your Azure-SSIS IR name>"
467-
# Specify the information about your classic or Azure Resource Manager virtual network.
468-
$VnetId = "<your Azure virtual network resource ID>"
469-
$SubnetName = "<the name of subnet in your virtual network>"
470-
```
471-
472475
### Stop the Azure-SSIS IR
473476

474477
You have to stop the Azure-SSIS IR before you can join it to a virtual network. This command releases all of its nodes and stops billing:
475478

476479
```powershell
477480
Stop-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
478-
-DataFactoryName $DataFactoryName `
479-
-Name $AzureSSISName `
480-
-Force
481+
-DataFactoryName $DataFactoryName `
482+
-Name $AzureSSISName `
483+
-Force
481484
```
482485

483486
### Configure virtual network settings for the Azure-SSIS IR to join
@@ -510,11 +513,20 @@ To join your Azure-SSIS IR to a virtual network, run the `Set-AzDataFactoryV2Int
510513

511514
```powershell
512515
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
513-
-DataFactoryName $DataFactoryName `
514-
-Name $AzureSSISName `
515-
-Type Managed `
516-
-VnetId $VnetId `
517-
-Subnet $SubnetName
516+
-DataFactoryName $DataFactoryName `
517+
-Name $AzureSSISName `
518+
-VnetId $VnetId `
519+
-Subnet $SubnetName
520+
521+
# Add public IP address parameters if you bring your own static public IP addresses
522+
if(![string]::IsNullOrEmpty($FirstPublicIP) -and ![string]::IsNullOrEmpty($SecondPublicIP))
523+
{
524+
$publicIPs = @($FirstPublicIP, $SecondPublicIP)
525+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
526+
-DataFactoryName $DataFactoryName `
527+
-Name $AzureSSISName `
528+
-PublicIPs $publicIPs
529+
}
518530
```
519531

520532
### Start the Azure-SSIS IR
@@ -523,10 +535,9 @@ To start the Azure-SSIS IR, run the following command:
523535

524536
```powershell
525537
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
526-
-DataFactoryName $DataFactoryName `
527-
-Name $AzureSSISName `
528-
-Force
529-
538+
-DataFactoryName $DataFactoryName `
539+
-Name $AzureSSISName `
540+
-Force
530541
```
531542

532543
This command takes 20 to 30 minutes to finish.
-627 Bytes
Loading
-645 Bytes
Loading

articles/data-factory/self-hosted-integration-runtime-proxy-ssis.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,40 @@ Having prepared your Self-Hosted IR and Azure Blob Storage linked service for st
6565

6666
![Advanced settings with a self-hosted IR](./media/tutorial-create-azure-ssis-runtime-portal/advanced-settings-shir.png)
6767

68+
You can also configure your new/existing Azure-SSIS IR with Self-Hosted IR as a proxy using PowerShell.
69+
70+
```powershell
71+
$ResourceGroupName = "[your Azure resource group name]"
72+
$DataFactoryName = "[your data factory name]"
73+
$AzureSSISName = "[your Azure-SSIS IR name]"
74+
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access
75+
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access
76+
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access
77+
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access
78+
79+
# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data accesss
80+
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
81+
{
82+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
83+
-DataFactoryName $DataFactoryName `
84+
-Name $AzureSSISName `
85+
-DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
86+
-DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName
87+
88+
if(![string]::IsNullOrEmpty($DataProxyStagingPath))
89+
{
90+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
91+
-DataFactoryName $DataFactoryName `
92+
-Name $AzureSSISName `
93+
-DataProxyStagingPath $DataProxyStagingPath
94+
}
95+
}
96+
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
97+
-DataFactoryName $DataFactoryName `
98+
-Name $AzureSSISName `
99+
-Force
100+
```
101+
68102
## Enable SSIS packages to connect by proxy
69103

70104
Using the latest SSDT with SSIS Projects extension for Visual Studio that can be downloaded from [here](https://marketplace.visualstudio.com/items?itemName=SSIS.SqlServerIntegrationServicesProjects) or as a standalone installer that can be downloaded from [here](https://docs.microsoft.com/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017#ssdt-for-vs-2017-standalone-installer), you can find a new **ConnectByProxy** property that has been added in OLEDB/Flat File Connection Managers.

0 commit comments

Comments
 (0)