使用 Azure Pipelines 從應用程式組態提取設定
Azure 應用程式組態工作會從應用程式組態存放區提取索引鍵/值,並將其設定為 Azure 管線變數,以供後續工作取用。 此工作補充 Azure 應用程式組態推送工作,該項工作會將機碼值從組態檔推送至您的應用程式組態存放區。 如需詳細資訊,請參閱使用 Azure Pipelines 將設定推送至應用程式組態。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 應用程式組態存放區 - 免費建立一個存放區
- Azure DevOps 專案–免費建立一個專案
- Azure 應用程式組態工作 - 從 Visual Studio Marketplace 免費下載。
- Azure Pipelines 代理程式 2.206.1 版或更新版本和 節點 16 版或更新版本,用於在自我裝載代理程式上執行工作。
建立服務連線
服務連線可讓您從 Azure DevOps 專案中存取 Azure 訂用帳戶的資源。
在 Azure DevOps 中,移至包含目標管線的專案。 在左下角中,選取 [專案設定]。
在管線 下方,選取服務連線。 在右上角中,選取 [新的服務連線]。
在 [新的服務連線] 中,選取 [Azure Resource Manager]。
在 [驗證方法] 對話框中,選取 [工作負載身分識別同盟],以建立新的工作負載身分識別同盟,或選取 [工作負載身分識別同盟] 來使用現有的工作負載身分識別同盟。
輸入您的訂用帳戶、資源群組,以及服務連線的名稱。
如果您已建立新的服務主體,請尋找指派給服務連線的服務主體名稱。 您將在下一個步驟中將新的角色指派新增至此服務主體。
移至 [專案設定]>[服務連線]。
選取新的服務連線。
選取 [管理服務主體]。
請注意 [顯示名稱] 中的值。
新增角色指派
為工作中正在使用的認證指派適當的應用程式組態角色指派,以便工作可以存取應用程式組態存放區。
移至您的目標應用程式組態存放區。
在左側功能表中,選取 [存取控制 (IAM)]。
在右側窗格中,選取 [新增角色指派]。
針對 [角色],選取 [應用程式組態資料讀者]。 此角色可讓工作從應用程式組態存放區讀取。
您在上一區段有建立服務連線,請選取與其相關的服務主體。
選取檢閱+指派。
如果存放區包含金鑰保存庫參考,請移至相關的金鑰保存庫,並將 [金鑰保存庫秘密使用者] 角色指派給在上一個步驟中建立的服務主體。 從 [金鑰保存庫] 功能表中,選取 [存取原則] 並確定已選取 Azure 角色型存取控制作為權限模型。
在組建中使用
本區段將說明如何在 Azure DevOps 組建管線中使用 Azure 應用程式組態工作。
- 按一下 [管線]>[管線] 以瀏覽至組建管線的頁面。 如需組建管線文件,請參閱建立您的第一個管線。
- 如果您要建立新的組建管線,請在進行到流程的最後一個步驟時,在 [檢閱] 索引標籤上,選取管線右側的 [顯示小幫手]。
- 如果您使用現有的組建管線,請按一下右上方的 [編輯] 按鈕。
- 搜尋 [Azure 應用程式組態] 工作。
- 設定工作的必要參數,以從應用程式組態存放區提取機碼值。 您可在下列 [參數] 區段中取得參數的說明,以及每個參數旁邊的工具提示。
- 將 Azure 訂閱參數設定為您在上一個步驟中建立的服務連線名稱。
- 將應用程式組態端點設定為應用程式組態存放區的端點。
- 保留其餘參數使用預設設定。
- 儲存並將一個組建排入佇列。 組建記錄檔會顯示在工作執行期間出現的任何失敗。
在發行版本中使用
本區段將說明如何在 Azure DevOps 發行管線中使用 Azure 應用程式組態工作。
- 選取 [管線]>[發行],瀏覽至發行管線的頁面。 如需發行管線文件,請參閱發行管線。
- 選擇現有的發行管線。 如果您沒有管線,請按一下 [新增管線] 以建立新的管線。
- 選取右上角的 [編輯] 按鈕以編輯發行管線。
- 在 [工作] 的下拉式清單中,選擇您要新增工作的 [階段]。 如需關於階段的詳細資訊可在這裡找到。
- 按一下在您要加入新工作作業旁邊的 +。
- 搜尋 [Azure 應用程式組態] 工作。
- 設定工作內的必要參數,從應用程式組態存放區提取機碼值。 您可在下列 [參數] 區段中取得參數的說明,以及每個參數旁邊的工具提示。
- 將 Azure 訂閱參數設定為您在上一個步驟中建立的服務連線名稱。
- 將應用程式組態端點設定為應用程式組態存放區的端點。
- 保留其餘參數使用預設設定。
- 儲存發行並將其排入佇列。 發行記錄會顯示在工作執行期間遇到的任何失敗。
參數
Azure 應用程式組態工作會使用下列參數:
- Azure 訂用帳戶:包含可用 Azure 服務連線的下拉式清單。 若要更新並重新整理可用的 Azure 服務連線清單,請按文字方塊右側的 [重新整理 Azure 訂用帳戶] 按鈕。
- 應用程式組態端點:將所選訂用帳戶下的可用組態存放區端點載入的下拉式清單。 若要更新並重新整理可用的組態存放區端點清單,請按文字方塊右側的 [重新整理應用程式組態端點] 按鈕。
- 選取模式:指定如何從組態存放區讀取金鑰值。 [預設] 選取模式允許使用金鑰和標籤篩選。 [快照集] 選取模式允許從快照集選取金鑰值。 預設值為 Default.
- 索引鍵篩選條件:篩選條件可用來選取從 Azure 應用程式組態要求的索引鍵/值。 * 的值會選取所有索引鍵/值。 如需詳細資訊,請參閱 查詢索引鍵/值。
- 標籤:指定從應用程式組態存放區選取索引鍵/值時,應該使用哪一個標籤。 如果未提供標籤,則會擷取沒有標籤的索引鍵/值。 不允許使用下列字元:, *。
- 快照集名稱:指定應在 Azure 應用程式組態中擷取金鑰值的快照集。
- 修剪索引鍵前置詞:指定一或多個前置詞,這些前置詞應該先從應用程式組態索引鍵修剪,再將其設定為變數。 多個前置詞可以分行符號分隔。
- 隱藏覆寫金鑰的警告:未核取預設值。 指定是否要在覆寫現有金鑰時顯示警告。 預期從應用程式組態下載的金鑰值具有與管線變數中存在的金鑰重疊時,請啟用此選項。
在後續工作中使用索引鍵/值
從應用程式組態擷取的索引鍵/值會設定為管線變數,這些變數可作為環境變數存取。 環境變數的索引鍵在修剪前置詞之後,從應用程式組態擷取的索引鍵/值索引鍵 (若指定)。
例如,如果後續工作執行 PowerShell 指令碼,可以使用機碼為「myBuildSetting」的機碼值,如下所示:
echo "$env:myBuildSetting"
且值將會列印到主控台。
注意
應用程式組態內的 Azure 金鑰保存庫參考將會解析,並設定為秘密變數。 在 Azure 管線中,秘密變數會從記錄中遮罩。 它們不會以環境變數的形式傳遞至工作,而且必須改為傳遞為輸入。
疑難排解
如果發生非預期的錯誤,可以將管線變數 system.debug
設定為 true
以啟用偵錯記錄。
常見問題集
如何從多個索引鍵和標籤撰寫設定?
有時候可能需要從多個標籤撰寫組態,例如預設和開發。 多個應用程式組態工作可用於一個管線中,以實作此案例。 在後續步驟中,工作擷取的索引鍵/值將會取代先前步驟中的任何值。 在上述範例中,工作可用來選取具有預設標籤的索引鍵/值,而第二個工作可以使用開發標籤來選取索引鍵/值。 具有開發人員標籤的索引鍵會以預設標籤覆寫相同的索引鍵。