分享方式:


使用 Azure Pipelines 發行版本將持續整合自動化

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

以下是設定 Azure Pipelines 發行的指南,可將資料處理站部署至多個環境自動化。

需求

設定 Azure Pipelines 發行

  1. Azure DevOps 中,開啟使用您的資料處理站設定的專案。

  2. 在頁面左側,選取 [管線],然後選取 [發行]

    選取管線、發行

  3. 選取 [新增管線],或者,如果您有現有的管線,請選取 [新增] 然後選取 [新增發行管線]

  4. 選取 [空白作業] 範本。

    選取空白工作

  5. 在 [暫存名稱] 方塊中,輸入環境的名稱。

  6. 選取 [新增成品],然後選取使用開資料處理站設定的 Git 存放庫。 針對 [預設分支] 選取存放庫的發佈分支。 根據預設,此發佈分支為 adf_publish。 針對 [預設版本],選取 [預設分支中的最新版本]

    新增構件

  7. 新增 Azure Resource Manager 部署工作:

    1. 在暫存檢視中,選取 [檢視暫存工作]

      階段檢視

    2. 建立新的工作。 搜尋 ARM 範本部署,接著選取 [新增]

    3. 在 [部署] 工作中,選取目標資料處理站的訂用帳戶、資源群組和位置。 視需要提供認證。

    4. 在 [動作] 清單中,選取 [建立或更新資源群組]

    5. 選取 [範本] 方塊旁的省略號按鈕 ()。 瀏覽在已設定 Git 存放庫發佈分支中產生的 Azure Resource Manager 範本。 在 adf_publish 分支的 <FactoryName> 資料夾中尋找 ARMTemplateForFactory.json 檔案。 如需使用連結的 ARM 範本的詳細資訊,請參閱 使用 VSTS 部署連結的 ARM 範本使用連結的範本

    6. 選取 [範本參數] 方塊旁的 […],以選擇參數檔案。 在 adf_publish 分支的 >FactoryName< 資料夾中尋找 ARMTemplateParametersForFactory.json 檔案。

    7. 選取 [覆寫範本參數] 方塊旁的 […],然後輸入目標資料處理站所需的參數值。 針對來自 Azure Key Vault 的認證,請在雙引號之間輸入秘密的名稱。 例如,如果秘密的名稱是 cred1,請針對此值輸入 "$(cred1)"

    8. 針對 [部署模式] 選取 [累加式]

      警告

      在完整部署模式中,存在於資源群組中但未在新的 Resource Manager 範本中指定的資源將將遭到刪除。 如需詳細資訊,請參閱 Azure Resource Manager 部署模式

      Data Factory 生產部署

  8. 儲存發行管線。

  9. 若要觸發發行,請選取 [建立發行]。 若要自動建立發行,請參閱 Azure DevOps 發行觸發程序

    建立建立發行

重要

在 CI/CD 案例中,不同環境中的整合執行階段 (IR) 類型必須相同。 例如,如果您在開發環境中具有自我裝載 IR,則相同的 IR 在其他環境 (例如測試和生產環境) 中的類型也必須為自我裝載。 同樣地,如果您要跨多個階段共用整合運行時間,則必須將所有環境中的整合運行時間設定為連結的自我裝載,例如開發、測試和生產環境。

從 Azure Key Vault 取得秘密

如果您有秘密可傳入 Azure Resource Manager 範本,建議您搭配 Azure Pipelines 發行使用 Azure Key Vault。

有兩種方式可以處理秘密:

  • 將秘密新增至參數檔案。 如需詳細資訊,請參閱在部署期間使用 Azure Key Vault 以傳遞安全的參數值

    建立上傳至發佈分支的參數檔案複本。 使用下列格式,設定您想要從 Key Vault 取得的參數值:

    {
        "parameters": {
            "azureSqlReportingDbPassword": {
                "reference": {
                    "keyVault": {
                        "id": "/subscriptions/<subId>/resourceGroups/<resourcegroupId> /providers/Microsoft.KeyVault/vaults/<vault-name> "
                    },
                    "secretName": " < secret - name > "
                }
            }
        }
    }
    

    當您使用此方法時,會自動從金鑰保存庫提取祕密。

    參數檔案也必須位於發佈分支中。

  • 在上一節中所述的 Azure Resource Manager 部署工作之前,新增 Azure Key Vault 工作

    1. 在 [工作] 索引標籤上,建立新的工作。 搜尋 Azure Key Vault 並加以新增。

    2. 在 Key Vault 工作中,選取您建立金鑰保存庫的訂用帳戶。 視需要提供認證,然後選取金鑰保存庫。

    新增 Key Vault 工作

將權限授與 Azure Pipelines 代理程式

如果未設定正確的權限,Azure Key Vault 工作可能會失敗,並出現拒絕存取錯誤。 下載發行的記錄,並找出包含命令的 .ps1 檔案,以向 Azure Pipelines 代理程式授與權限。 您可以直接執行命令。 或者,您可以從檔案複製主體識別碼,並在 Azure 入口網站中手動新增存取原則。 GetList 是所需的最低權限。

更新作用中的觸發程序

依照如何安裝和設定 Azure PowerShell中的指示,安裝最新的 Azure PowerShell 模組。

警告

如果您未使用最新版本的 PowerShell 和 Data Factory 模組,在執行命令時可能會發生還原序列化錯誤。

如果您嘗試更新作用中的觸發程序,部署可能會失敗。 若要更新作用中的觸發程序,您必須手動停止觸發程序,然後在部署之後加以重新啟動。 您可以使用 Azure PowerShell 工作來執行此動作:

  1. 在發行的 [工作] 索引標籤上,新增 Azure PowerShell 工作。 選擇最新 Azure PowerShell 版的工作版本。

  2. 選取包含您處理站的訂用帳戶。

  3. 選取 [指令檔路徑] 做為指令碼類型。 這需要您將 PowerShell 指令碼儲存在存放庫中。 下列 PowerShell 指令碼可用來停止觸發程序:

    $triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName
    
    $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
    

您可以完成類似的步驟 (使用 Start-AzDataFactoryV2Trigger 函式) 在部署之後重新啟動觸發程序。

資料處理站小組已提供範例部署前後指令碼

注意

在持續整合與持續傳遞期間,如果您只要關閉/開啟已修改的觸發程序,而不是關閉/開啟所有觸發程序,請使用 PrePostDeploymentScript.Ver2.ps1

警告

請務必在 ADO 工作中使用 PowerShell Core 執行指令碼