使用 Azure Pipelines 將設定推送至應用程式組態

Azure 應用程式組態推送工作會將機碼值從組態檔推送至您的應用程式組態存放區。 此工作可在管線內啟用完整的圓形功能,您現在可以從應用程式組態存放區提取設定,也可以將設定推送至應用程式組態存放區。

必要條件

建立服務連線

服務連線可讓您從 Azure DevOps 專案中存取 Azure 訂用帳戶的資源。

  1. 在 Azure DevOps 中,移至包含目標管線的專案。 在左下角中,選取 [專案設定]

  2. 管線 下方,選取服務連線。 在右上角中,選取 [新的服務連線]

  3. 在 [新的服務連線] 中,選取 [Azure Resource Manager]

    Screenshot shows selecting Azure Resource Manager from the New service connection dropdown list.

  4. 在 [驗證方法] 對話方塊中,選取 [服務主體 (自動)] 以建立新的服務主體,或選取 [服務主體 (手動)]使用現有的服務主體

  5. 輸入您的訂用帳戶、資源群組,以及服務連線的名稱。

如果您已建立新的服務主體,請尋找指派給服務連線的服務主體名稱。 您將在下一個步驟中將新的角色指派新增至此服務主體。

  1. 移至 [專案設定]>[服務連線]

  2. 選取新的服務連線。

  3. 選取 [管理服務主體]

  4. 請注意 [顯示名稱] 中的值。

    Screenshot shows the service principal display name.

新增角色指派

為工作中正在使用的認證指派適當的應用程式組態角色指派,以便工作可以存取應用程式組態存放區。

  1. 移至您的目標應用程式組態存放區。

  2. 在左側功能表中,選取 [存取控制 (IAM)]

  3. 在右側窗格中,選取 [新增角色指派]

    Screenshot shows the Add role assignments button.

  4. 針對 [角色],選取 [應用程式組態資料擁有者]。 此角色可讓工作從應用程式組態存放區讀取,也可以使其寫入至應用程式組態存放區。

  5. 您在上一區段有建立服務連線,請選取與其相關的服務主體。

    Screenshot shows the Add role assignment dialog.

  6. 選取檢閱+指派

在組建中使用

本區段將說明如何在 Azure DevOps 組建管線中使用 Azure 應用程式組態推送工作。

  1. 按一下 [管線]>[管線] 以瀏覽至組建管線的頁面。 您可以在這裡找到關於組建管線的文件。
    • 如果您要建立新的組建管線,請在進行到流程的最後一個步驟時,在 [檢閱] 索引標籤上,選取管線右側的 [顯示小幫手]

      Screenshot shows the Show assistant button for a new pipeline.

    • 如果您使用現有的組建管線,請按一下右上方的 [編輯] 按鈕。

      Screenshot shows the Edit button for an existing pipeline.

  2. 搜尋 [Azure 應用程式組態推送] 工作。

    Screenshot shows the Add Task dialog with Azure App Configuration Push in the search box.

  3. 設定工作的必要參數,以將組態檔中的機碼值推送至應用程式組態存放區。 您可在下列 [參數] 區段中取得參數的說明,以及每個參數旁邊的工具提示。

    Screenshot shows the app configuration push task parameters.

  4. 儲存並將一個組建排入佇列。 組建記錄檔會顯示在工作執行期間出現的任何失敗。

在發行版本中使用

本節說明如何在 Azure DevOps 發行管線中使用 Azure 應用程式組態推送工作。

  1. 選取 [管線]>[發行],瀏覽至發行管線的頁面。 您可以在這裡找到關於發行管線的文件。
  2. 選擇現有的發行管線。 如果您沒有發行管線,請選取 [+ 新增] 以建立新的發行管線。
  3. 選取右上角的 [編輯] 按鈕以編輯發行管線。
  4. 在 [工作] 的下拉式清單中,選擇您要新增工作的 [階段]。 如需關於階段的詳細資訊可在這裡找到。

    Screenshot shows the selected stage in the Tasks dropdown.

  5. 按一下在您要加入新工作作業旁邊的 +

    Screenshot shows the plus button next to the job.

  6. 在 [新增工作] 的對話方塊中,將 [Azure 應用程式組態推送] 輸入至搜尋方塊,並加以選取。
  7. 設定工作內的必要參數,將機碼值從組態檔推送至應用程式組態存放區。 您可在下列 [參數] 區段中取得參數的說明,以及每個參數旁邊的工具提示。
  8. 儲存發行並將其排入佇列。 發行記錄會顯示在工作執行期間遇到的任何失敗。

參數

應用程式組態推送工作會使用下列參數:

  • Azure 訂用帳戶:包含可用 Azure 服務連線的下拉式清單。 若要更新並重新整理可用的 Azure 服務連線清單,請按文字方塊右側的 [重新整理 Azure 訂用帳戶] 按鈕。
  • 應用程式組態端點:這個下拉式清單會載入所選訂用帳戶下的可用組態存放區端點。 若要更新並重新整理可用的組態存放區端點清單,請按文字方塊右側的 [重新整理應用程式組態端點] 按鈕。
  • 組態檔路徑:組態檔的路徑。 組態檔路徑參數會從檔案存放庫的根開始。 您可以透過瀏覽組建成品來選取組態檔。 (文字方塊右側的 ... 按鈕)。 支援的檔案格式取決於檔案內容設定檔。 針對預設設定檔,支援的檔格式為 yaml、json 和 properties。 針對 KvSet 設定檔,支援的檔案格式為 json。
  • 檔案內容設定檔:組態檔的內容設定檔。 預設值為 [預設]
    • 預設:是指應用程式可以直接取用的傳統組態檔格式。
    • Kvset:是指檔案結構描述,其中包含應用程式組態索引鍵/值的所有屬性,包括索引鍵、值、標籤、內容類型和標記。 使用 Kvset 設定檔時,工作參數「分隔符號」、「標籤」、「內容類型」、「前置詞」、「標記」和「深度」並不適用。
  • 匯入模式:預設值為 [全部]。 決定匯入索引鍵/值時的行為。
    • 全部:將組態檔中的所有索引鍵/值匯入至應用程式組態。
    • 忽略相符項:僅匯入應用程式組態中沒有相符索引鍵/值的設定。 比對索引鍵/值是指索引鍵/值必須有相同的索引鍵、標籤、值、內容類型和標記。
  • 試執行:預設值為 [未核取]
    • 已核取:不會對應用程式組態執行任何更新。 相反地,在正常執行中執行的任何更新都會列印到主控台以供檢閱。
    • 未核取:對應用程式組態執行任何更新,且不會列印至主控台。
  • 分隔符號:用來壓平合併 .json 和 .yml 檔案的分隔符號。
  • 深度:會將 .json 和 .yml 檔案壓平合併的深度。
  • 前置詞:附加至推送到應用程式組態存放區,每個索引鍵開頭的字串。
  • 標籤:新增至每個機碼值的字串,這些字串會作為應用程式組態存放區內的標籤。
  • 內容類型:新增至每個機碼值的字串,這些字串會作為應用程式組態存放區內的內容類型。
  • 標記:格式為 {"tag1":"val1", "tag2":"val2"} 的 JSON 物件,其會定義新增至每個機碼值的標記,且機碼值會推送至應用程式組態存放區。
  • 刪除組態檔中未包含的索引鍵/值:預設值為 [未核取]。 此選項的行為取決於組態檔內容設定檔。
    • 已核取
      • 預設內容設定檔:移除應用程式組態存放區中符合指定前置詞和標籤的所有索引鍵/值,再從組態檔推送新的索引鍵/值。
      • Kvset 內容設定檔:移除應用程式組態存放區中未納入設定檔的所有索引鍵/值,再從組態檔推送新的索引鍵/值。
    • 未檢查:將組態檔中的所有機碼值推送至應用程式組態存放區,並將其他所有內容保留在應用程式組態存放區中。

疑難排解

如果發生非預期的錯誤,可以將管線變數 system.debug 設定為 true 以啟用偵錯記錄。

常見問題集

如何上傳多個設定檔?

在相同的管線內建立多個 Azure 應用程式組態推送工作的執行個體,以將多個設定檔推送至應用程式組態存放區。

如何使用這項工作建立 Key Vault 參考或功能旗標?

依據您選取的檔案內容設定檔,請參閱設定檔適用的 Azure 應用程式組態支援中的範例。

為什麼我在嘗試將機碼值推送至設定存放區時,會收到 409 錯誤?

如果工作嘗試移除或覆寫鎖定在應用程式組態存放區中的機碼值,就會發生 409 衝突錯誤訊息。