使用 Azure DevOps 持續部署

重要

自定義命令將於 2026 年 4 月 30 日淘汰。 自 2023 年 10 月 30 日起,您無法在 Speech Studio 中建立新的自定義命令應用程式。 與此變更相關, LUIS 將於 2025 年 10 月 1 日淘汰。 自 2023 年 4 月 1 日起,您無法建立新的 LUIS 資源。

在本文中,您將瞭解如何為自定義命令應用程式設定持續部署。 支援 CI/CD 工作流程的腳本會提供給您。

必要條件

  • 開發自訂指令應用程式 (DEV)
  • 生產環境的自訂指令應用程式 (PROD)
  • 註冊 Azure Pipelines

匯出/匯入/發佈

腳本裝載於 語音助理 - 自定義命令。 將bash目錄中的文稿複製到您的存放庫。 請確定您維持相同的路徑。

設定管線

  1. 移至 Azure DevOps - 管線 ,然後選取 [新增管線]

  2. [連線] 區段中,選取這些腳本所在的存放庫位置

  3. [選取 ] 區段中,選取您的存放庫

  4. 在 [ 設定] 區段中,選取 [入門管線]

  5. 接下來,您會使用 YAML 檔案取得編輯器,並將 「steps」 區段取代為此腳本。

    steps:
    - task: Bash@3
      displayName: 'Export source app'
      inputs:
        targetType: filePath
        filePath: ./bash/export.sh
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(SourceAppId) -f ExportedDialogModel.json'
        workingDirectory: bash
        failOnStderr: true
    
    - task: Bash@3
      displayName: 'Import to target app'
      inputs:
        targetType: filePath
        filePath: ./bash/import.sh
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId) -f ExportedDialogModel.json'
        workingDirectory: bash
        failOnStderr: true
    
    - task: Bash@3
      displayName: 'Train and Publish target app'
      inputs:
        targetType: filePath
        filePath: './bash/train-and-publish.sh'
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId)'
        workingDirectory: bash
        failOnStderr: true
    
  6. 這些文稿假設您使用區域 westus2,如果不是這種情況,請據以更新工作的自變數

    Screenshot that highlights the region value in the arguments.

  7. 在 [儲存並執行] 按鈕中,開啟下拉式清單並選取 [儲存]

將管線與您的應用程式連結

  1. 流覽至管線的主頁面。

  2. 在右上角的下拉式清單中,選取 [ 編輯管線]。 它可讓您使用YAML編輯器。

  3. 在 [執行] 按鈕旁邊的右上角,選取 [ 變數]。 選取 [新增變數]

  4. 新增這些變數:

    變數 描述
    SourceAppId DEV 應用程式的識別碼
    TargetAppId PROD 應用程式的識別碼
    SubscriptionKey 這兩個應用程式所使用的金鑰
    文化特性 應用程式的文化特性(en-us)

    Send Activity payload

  5. 選取 [執行],然後選取執行中的「作業」。

    您應該會看到執行的工作清單,其中包含:「匯出來源應用程式」、「匯入目標應用程式」和「定型和發佈目標應用程式」

從原始程式碼部署

如果您想要將應用程式的定義保留在存放庫中,我們會提供從原始程式碼部署的腳本。 由於腳本位於bash中,如果您使用 Windows,則需要安裝 Linux 子系統

腳本裝載於 語音助理 - 自定義命令。 將bash目錄中的文稿複製到您的存放庫。 請確定您維持相同的路徑。

準備存放庫

  1. 在我們的範例中,為您的應用程式建立目錄,建立一個名為 「apps」 的目錄。

  2. 更新下方 bash 腳本的自變數,然後執行。 它會將應用程式的對話框模型匯入檔案myapp.json

    bash/export.sh -r <region> -s <subscriptionkey> -c en-us -a <appid> -f apps/myapp.json
    
    引數 描述
    region 您的語音資源區域。 例如:westus2
    subscriptionkey 您的語音資源金鑰。
    appid 您要匯出的自訂命令應用程式識別碼。
  3. 將這些變更推送至您的存放庫。

設定管線

  1. 移至 Azure DevOps - 管線 ,然後選取 [新增管線]

  2. [連線] 區段中,選取這些腳本所在的存放庫位置

  3. [選取 ] 區段中,選取您的存放庫

  4. 在 [ 設定] 區段中,選取 [入門管線]

  5. 接下來,您會使用 YAML 檔案取得編輯器,並將 「steps」 區段取代為此腳本。

    steps:
    - task: Bash@3
      displayName: 'Import app'
      inputs:
        targetType: filePath
        filePath: ./bash/import.sh
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId) -f ../apps/myapp.json'
        workingDirectory: bash
        failOnStderr: true
    
    - task: Bash@3
      displayName: 'Train and Publish app'
      inputs:
        targetType: filePath
        filePath: './bash/train-and-publish.sh'
        arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId)'
        workingDirectory: bash
        failOnStderr: true
    

    注意

    這些腳本假設您使用westus2區域,如果不是這種情況,請據以更新工作的自變數

  6. 在 [儲存並執行] 按鈕中,開啟下拉式清單並選取 [儲存]

將管線與您的目標應用程序連結

  1. 流覽至管線的主頁面。

  2. 在右上角的下拉式清單中,選取 [ 編輯管線]。 它可讓您使用YAML編輯器。

  3. 在 [執行] 按鈕旁邊的右上角,選取 [ 變數]。 選取 [新增變數]

  4. 新增這些變數:

    變數 描述
    TargetAppId PROD 應用程式的識別碼
    SubscriptionKey 這兩個應用程式所使用的金鑰
    文化特性 應用程式的文化特性(en-us)
  5. 選取 [執行],然後選取執行中的「作業」。 您應該會看到執行的工作清單,其中包含「匯入應用程式」 和 [定型和發佈應用程式]

下一步