SQL Server Integration Services (SSIS) DevOps 工具 Azure DevOps 延伸模組
SSIS DevOps 工具延伸模組可在 Azure DevOps Marketplace 中取得。 SSIS DevOps 支援 Azure DevOps Services、Azure DevOps Server 2019 和更新版本。
如果您沒有 Azure DevOps 組織,請先註冊 Azure Pipelines ,然後按照步驟新增 SSIS DevOps 工具延伸模組。
SSIS DevOps Tools 包括 SSIS 建置工作、SSIS 部署發行工作,以及 SSIS 目錄組態工作。
SSIS 建置 工作支援在專案部署模型或套件部署模型中建置 dtproj 檔案。
SSIS 部署 工作支援將單一或多個 ispac 檔案部署到內部部署 SSIS 目錄和 Azure-SSIS IR,或將 SSISDeploymentManifest 檔案及其相關聯的檔案部署到內部部署或 Azure 檔案共用。
SSIS 目錄組態 工作支援使用 JSON 格式的組態檔來設定 SSIS 目錄資料夾/專案/環境。 這項工作支援下列情節:
- 資料夾
- 建立資料夾。
- 更新資料夾描述。
- 專案
- 設定參數的值,支援 literal 值和 referenced 值。
- 新增環境參考。
- 環境
- 建立環境。
- 更新環境描述。
- 建立或更新環境變數。
- 資料夾
SSIS 建置工作
屬性
專案路徑
要建置之專案資料夾或檔案的路徑。 如果指定了資料夾路徑,SSIS 建置工作會以遞迴方式搜尋此資料夾下的所有 dtproj 檔案,並建置所有檔案。
專案路徑不能是「空的」,請設定為 . 以從存放庫的根資料夾建置。
專案組態
要用於建置的專案組態名稱。 如果未提供,則會預設為每個 dtproj 檔案中第一個定義的專案組態。
輸出路徑
儲存建置結果的個別資料夾路徑,可以透過發行組建成品工作 \(英文\) 發行為組建成品。
限制與已知問題
SSIS 建置工作依賴 Visual Studio 和 SSIS 設計工具,這在建置代理程式上是必要的。 因此,若要在管線中執行 SSIS 建置工作:
- 針對 Microsoft 裝載的代理程式,您必須選擇包含 Visual Studio 和 SQL Server Integration Services 延伸模組的可用映像,例如 windows-2022。 詳細資料請參閱 Microsoft 裝載的代理程式文件,以了解包含在可用映像中的軟體。
- 針對自我裝載式代理程式,請在自我裝載式代理程式上安裝 Visual Studio 和 SSIS 設計師 (VS2022 + SSIS Projects 延伸模組或 VS2019 + SSIS Projects 延伸模組)。
若要使用任何現成可用的元件 (包括 SSIS Azure Feature Pack 和其他協力廠商元件) 來建置 SSIS 專案,必須在執行管線代理程式的電腦上安裝這些現成可用的元件。 針對 Microsoft 裝載的代理程式,使用者可以在執行 SSIS 建置工作之前,新增 PowerShell 指令碼工作或命令列指令碼工作,以下載並安裝元件。 面下面是可用於安裝 Azure Feature Pack 的範例 PowerShell 指令碼:
wget -Uri https://download.microsoft.com/download/E/E/0/EE0CB6A0-4105-466D-A7CA-5E39FA9AB128/SsisAzureFeaturePack_2017_x86.msi -OutFile AFP.msi
start -Wait -FilePath msiexec -Args "/i AFP.msi /quiet /l* log.txt"
cat log.txt
- 在 SSIS 建置工作中不支援 EncryptSensitiveWithPassword 和 EncryptAllWithPassword 的保護層級。 確定程式碼基底中的所有 SSIS 專案都不是使用這兩個保護層級,否則 SSIS 建置工作會在執行期間停止回應並逾時。
SSIS 建置工作 1.* 版
1.* 版中的增強功能:
移除 Visual Studio 與 SSIS 設計工具的相依性。 建置工作可以在 Microsoft 裝載的代理程式或具有 Windows OS 和 .NET Framework 4.6.2 或更高版本的自我裝載式代理程式上執行。
不需要安裝現成元件。
支援保護層級 EncryptionWithPassword 和 EncryptionAllWithPassword。
限制與已知問題
- SSIS 建置工作 1.* 版不支援建置包含 SSIS 套件且具有數位簽章的 SSIS 專案。
1.* 版獨有的屬性
專案密碼
SSIS 專案及其套件的密碼。 只有在 SSIS 專案及套件的保護層級為 EncryptSensitiveWithPassword 或 EncryptAllWithPassword 時,此引數才會有效。 針對套件部署模型,所有套件都必須共用由此引數所指定的相同密碼。
去除敏感性資料
若此值為 True,會將 SSIS 專案的保護層級轉換成 DontSaveSensitve。 當保護層級為 EncryptSensitiveWithPassword 或 EncryptAllWithPassword 時,必須正確設定專案密碼引數。 此選項僅適用於專案部署模型。
SSIS 部署工作
屬性
來源路徑
您想要部署的來源 ISPAC 或 SSISDeploymentManifest 檔案的路徑。 這個路徑可以是資料夾路徑或檔案路徑。
目的地類型
目的地類型。 目前的 SSIS 部署工作支援兩種類型:
- 檔案系統:將 SSISDeploymentManifest 檔案及其相關聯的檔案部署至指定的檔案系統。 支援內部部署和 Azure 檔案共用。
- SSISDB:將 ISPAC 檔案部署到指定的 SSIS 目錄,其可裝載於內部部署 SQL Server 或 Azure-SSIS Integration Runtime 上。
目的地伺服器
目的地資料庫引擎的名稱。 其可以是內部部署 SQL Server、Azure SQL Database 或 Azure SQL 受控執行個體的名稱。 只有當目的地類型為 SSISDB 時,才會顯示此屬性。
目的地路徑
將在其中部署來源檔案的目的地資料夾路徑。 例如:
- /SSISDB/<folderName>
- \\<機器名稱>\<共用資料夾名稱>\<選用的子資料夾名稱>
SSIS 部署工作將會建立資料夾與子資料夾 (如果不存在)。
驗證類型
用來存取指定目的地伺服器的驗證類型。 只有當目的地類型為 SSISDB 時,才會顯示此屬性。 一般支援下列驗證類型:
- Windows 驗證
- SQL Server 驗證
- Active Directory - 密碼
- Active Directory - 整合式
但是,是否支援特定驗證類型取決於目的地伺服器類型和代理程式類型。 詳細資料支援矩陣會列在下表中。
目的地伺服器類型 | Microsoft 裝載的代理程式 | 自我裝載的代理程式 |
---|---|---|
SQL Server 內部部署或 VM | N/A | Windows 驗證 |
Azure SQL | SQL Server 驗證 Active Directory - 密碼 |
SQL Server 驗證 Active Directory - 密碼 Active Directory - 整合式 |
網域名稱
用來存取指定檔案系統的網域名稱。 只有當目的地類型為 [檔案系統] 時,才會顯示此屬性。 當執行自我裝載代理程式的使用者帳戶已被授與指定目的地路徑的讀取/寫入存取權時,您可以將它保留空白。
使用者名稱
存取指定檔案系統或 SSISDB 的使用者名稱。 當目的地類型為 [檔案系統] 或驗證類型為 [SQL Server 驗證] 或 [Active Directory - 密碼] 時,就會顯示此屬性。 當目的地類型為 [檔案系統],而執行自我裝載代理程式的使用者帳戶已被授與指定目的地路徑的讀取/寫入存取權時,您可以將它保留空白。
密碼
用來存取指定檔案系統或 SSISDB 的密碼。 當目的地類型為 [檔案系統] 或驗證類型為 [SQL Server 驗證] 或 [Active Directory - 密碼] 時,就會顯示此屬性。 當目的地類型為 [檔案系統],且執行自我裝載代理程式的使用者帳戶已被授與指定目的地路徑的讀取/寫入存取權時,您可以將它保留空白。
覆寫相同名稱的現有專案或 SSISDeploymentManifest 檔案
指定是否覆寫相同名稱的現有專案或 SSISDeploymentManifest 檔案。 如果為 [否],SSIS 部署工作會略過部署這些專案或檔案。
發生錯誤時繼續部署
指定在發生錯誤時,是否繼續部署剩餘的專案或檔案。 如果為 [否],則會在發生錯誤時立即停止 SSIS 部署工作。
限制與已知問題
SSIS 部署工作目前不支援下列案例:
- 在 SSIS 目錄中設定環境。
- 將 ISPAC 部署至 Azure SQL Server 或 Azure SQL 受控執行個體,這只允許多重要素驗證。
- 將套件部署到 MSDB 或 SSIS 套件存放區。
- 如果您在 Azure DevOps Server 中安裝 SSIS DevOps Tools 延伸模組,可能會看到 [延伸模處套件大小超過套件大小上限] 訊息。若要解決此問題,請完成下列步驟:
- 連線到內部部署 SQL Server 執行個體,然後選取資料庫 Gallery_Configuration。
- 執行查詢
INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50)
。 如果延伸模組大於 50 MB,請將50
變更為較高的數字。 - 執行查詢之後,請重新啟動 Internet Information Services。 請再次嘗試上傳延伸模組。
- 如果問題持續發生,請連絡 SQL Server 支援小組。
SSIS 部署工作 1.* 版
1.* 版中的增強功能:
- 支援保護層級 EncryptionWithPassword 和 EncryptionAllWithPassword。
1.* 版獨有的屬性
專案密碼
將 ISPAC 或 DTSX 檔案解密的密碼。 只有在保護層級為 EncryptSensitiveWithPassword 或 EncryptAllWithPassword 時,此引數才有效。
SSIS 目錄組態工作
屬性
組態檔來源
SSIS 目錄組態 JSON 檔案的來源。 可以是「檔案路徑」或「內嵌」。
請參閱以下有關如何定義組態 JSON 的詳細資料:
- 參閱範例內嵌組態 JSON。
- 查看 JSON 結構描述。
組態 JSON 檔案路徑
SSIS 目錄組態 JSON 檔案的路徑。 只有當選取 [檔案路徑] 作為組態檔來源時,才會顯示此屬性。
若要在組態 JSON 檔案中使用管線變數,則必須在這項工作之前新增檔案轉換工作,以將組態值替代為管線變數。 如需詳細資訊,請參閱 JSON 變數替代 (英文)。
內嵌組態 JSON
SSIS 目錄組態的內嵌 JSON。 只有當選取 [內嵌] 作為組態檔來源時,才會顯示此屬性。 可直接使用管線變數。
發生錯誤時復原組態
發生錯誤時是否復原這項工作所做的組態。
目標伺服器
目標資料庫引擎的名稱。 其可以是內部部署 SQL Server、Azure SQL Database 或 Azure SQL 受控執行個體的名稱。
驗證類型
用來存取指定目標伺服器的驗證類型。 一般支援下列驗證類型:
- Windows 驗證
- SQL Server 驗證
- Active Directory - 密碼
- Active Directory - 整合式
但是,是否支援特定驗證類型取決於目的地伺服器類型和代理程式類型。 詳細資料支援矩陣會列在下表中。
目的地伺服器類型 | Microsoft 裝載的代理程式 | 自我裝載的代理程式 |
---|---|---|
SQL Server 內部部署或 VM | N/A | Windows 驗證 |
Azure SQL | SQL Server 驗證 Active Directory - 密碼 |
SQL Server 驗證 Active Directory - 密碼 Active Directory - 整合式 |
使用者名稱
用來存取目標 SQL Server 的使用者名稱。 只有當驗證類型為 [SQL Server 驗證] 或 [Active Directory - 密碼] 時,才會顯示此屬性。
密碼
用來存取目標 SQL Server 的密碼。 只有當驗證類型為 [SQL Server 驗證] 或 [Active Directory - 密碼] 時,才會顯示此屬性。
定義組態 JSON
組態 JSON 結構描述有三個層級:
- catalog
- folder
- 專案和環境
範例內嵌組態 JSON
{
"folders": [
{
"name": "devopsdemo",
"description": "devops demo folder",
"projects": [
{
"name": "catalog devops",
"parameters": [
{
"name": "password",
"container": "Package.dtsx",
"value": "passwd",
"valueType": "referenced"
},
{
"name": "serverName",
"container": "catalog devops",
"value": "localhost",
"valueType": "literal"
}
],
"references": [
{
"environmentName": "test",
"environmentFolder": "devopsdemo"
},
{
"environmentName": "test",
"environmentFolder": "."
}
]
}
],
"environments": [
{
"name": "test",
"description": "test",
"variables": [
{
"name": "passwd",
"type": "string",
"description": "",
"value": "$(SSISDBServerAdminPassword)",
"sensitive": true
},
{
"name": "serverName",
"type": "string",
"description": "",
"value": "$(TargetServerName)",
"sensitive": false
}
]
}
]
}
]
}
JSON 結構描述
目錄屬性
屬性 | 描述 | 注意 |
---|---|---|
資料夾 | 資料夾物件的陣列。 每個物件都包含目錄資料夾的組態資訊。 | 如需資料夾物件的結構描述,請參閱<資料夾屬性>。 |
資料夾屬性
屬性 | 描述 | 注意 |
---|---|---|
NAME | 目錄資料夾的名稱。 | 如果資料夾不存在,則會加以建立。 |
description | 目錄資料夾的描述。 | 將略過 null 值。 |
projects | 專案物件的陣列。 每個物件都包含專案的組態資訊。 | 如需專案物件的結構描述,請參閱<專案屬性>。 |
environments | 環境物件的陣列。 每個物件都包含環境的組態資訊。 | 如需環境物件的結構描述,請參閱<環境屬性>。 |
專案屬性
屬性 | 描述 | 注意 |
---|---|---|
NAME | 專案的名稱。 | 如果父資料表中不存在專案,則會略過專案物件。 |
參數 | 參數物件的陣列。 每個物件都包含參數的組態資訊。 | 如需參數物件的結構描述,請參閱<參數屬性>。 |
參考 | 參考物件的陣列。 每個物件都代表目標專案的一個環境參考。 | 如需參考物件的結構描述,請參閱<參考屬性>。 |
參數屬性
屬性 | 描述 | 注意 |
---|---|---|
NAME | 參數的名稱。 | |
容器 | 參數的容器。 | |
value | 參數的值。 | |
valueType | 參數值類型。 | 有效類型包括: literal:value 屬性代表常值。 referenced:value 屬性代表環境變數參考。 |
參考屬性
屬性 | 描述 | 注意 |
---|---|---|
environmentFolder | 環境的資料夾名稱。 | 如果資料夾不存在,則會加以建立。 值可以是 ".",代表參考環境之專案的父資料夾。 |
environmentName | 參考環境的名稱。 | 如果指定的環境不存在,則會加以建立。 |
環境屬性
屬性 | 描述 | 注意 |
---|---|---|
NAME | 環境的名稱。 | 如果環境不存在,則會加以建立。 |
description | 環境的描述。 | 將略過 null 值。 |
variables | 變數物件的陣列。 | 每個物件都包含環境變數的組態資訊。如需變數物件的結構描述,請參閱<變數屬性>。 |
變數屬性
屬性 | 描述 | 注意 |
---|---|---|
NAME | 環境變數的名稱。 | 如果環境變數不存在,則會加以建立。 |
type | 環境變數的資料類型。 | 有效類型包括: boolean byte datetime decimal double int16 int32 int64 sbyte single string uint32 uint64 |
description | 環境變數的描述。 | 將略過 null 值。 |
value | 環境變數的值。 | 此屬性支援任何有效的 boolean、number 和 string JSON 值。 系統會將此值轉換成 type 屬性指定的類型。 如果轉換失敗,則會發生錯誤。 null 值無效。 該工作將略過此環境變數物件,並發出警告。 |
sensitive | 環境變數的值是否具敏感性。 | 有效輸入包括: true false |
版本資訊
1.0.6 版
發行日期:2021 年 9 月 1 日
- 正式發行 (GA) 版本。
1.0.5 版
發行日期:2021 年 6 月 2 日
- 修正了 SSIS 建置工作 1.* 版有時無法建置保護層級為 EncryptSensitiveWithPassword 或 EncryptAllWithPassword 的專案/套件,並出現 [指定的初始化向量 (IV) 不符合此演算法的區塊大小] 錯誤。
- 移除了 [組態檔來源] 為 [檔案路徑] 時,在 SSIS 目錄組態工作記錄中的 JSON 內容。
1.0.4 版
發行日期:2021 年 4 月 21 日
- SSIS 建置工作 1.* 版 (預覽版)
- 移除 Visual Studio 與 SSIS 設計工具的相依性。 建置工作可以在 Microsoft 裝載的代理程式或具有 Windows OS 和 .NET Framework 4.6.2 或更高版本的自我裝載式代理程式上執行。
- 不需要安裝現成元件。
- 支援保護層級 EncryptionWithPassword 和 EncryptionAllWithPassword。
- SSIS 部署工作 1.* 版 (預覽版)
- 支援保護層級 EncryptionWithPassword 和 EncryptionAllWithPassword。
1\.0.3 版
發行日期:2020 年 10 月 21 日
- 允許為 SSIS 部署工作和 SSIS 目錄設定工作指定連接字串尾碼。
1\.0.2 版
發行日期:2020 年 5 月 26 日
- 已修正在設定工作完成後,SSIS 目錄設定工作可能會失敗的問題。
1\.0.1 版
發行日期:2020 年 5 月 9 日
- 已修正即使只將單一 dtproj 檔案檔案指定為專案路徑,SSIS 建置工作還是一律會建立整個解決方案的問題。
1\.0.0 版
發行日期:2020 年 5 月 8 日
- 正式發行 (GA) 版本。
- 已在代理程式上新增 .NET Framework 最低版本的限制。 目前的最低版本是 .NET Framework 4.6.2。
- SSIS 組建工作和 SSIS 部署工作的精簡描述。
0\.2.0 版預覽
發行日期:2020 年 3 月 31 日
- 新增 SSIS 目錄組態工作。
0\.1.3 版預覽
發行日期:2020 年 1 月 19 日
- 已修正當 ispac 的原始檔案名稱變更時即無法部署的問題。
0\.1.2 版預覽
發行日期:2020 年 1 月 13 日
- 新增了更詳細的例外狀況資訊,當目的地類型為 SSISDB 時,會顯示在 SSIS 部署工作記錄中。
- 修正了 SSIS 部署工作中,目的地路徑屬性說明文字的範例目的地路徑。
0\.1.1 版預覽
發行日期:2020 年 1 月 6 日
- 新增了最低代理程式版本需求的限制。 目前,此產品的最低代理程式版本是 2.144.0。
- 修正了 SSIS 部署工作的部分錯誤顯示文字。
- 修正部分錯誤訊息。
0\.1.0 版預覽
發行日期:2019 年 12 月 5 日
SSIS DevOps 工具的初始版本。 這是預覽版本。