Azure DevOps による継続的配置

重要

Custom Commands は 2026 年 4 月 30 日に廃止される予定です。 2023 年 10 月 30 日以降、Speech Studio で新しい Custom Commands アプリケーションを作成することはできません。 この変更に関連して、LUIS は 2025 年 10 月 1 日に廃止される予定です。 2023 年 4 月 1 日以降、新しい LUIS リソースを作成することはできません。

この記事では、カスタム コマンド アプリケーションの継続的配置の設定方法について説明します。 CI/CD ワークフローをサポートするスクリプトが用意されています。

前提条件

  • 開発用のカスタム コマンド アプリケーション (DEV)
  • 運用環境用のカスタム コマンド アプリケーション (PROD)
  • Azure Pipelines へのサインアップ

エクスポート/インポート/発行

スクリプトは、音声アシスタント - カスタム コマンドでホストされています。 bash ディレクトリ内のスクリプトをご自分のリポジトリに複製します。 必ず同じパスを保持してください。

パイプラインの設定

  1. Azure DevOps - パイプラインにアクセスして、[新しいパイプライン] を選択します。

  2. [接続] セクションで、これらのスクリプトが配置されているリポジトリの場所を選択します。

  3. [選択] セクションで、ご自分のリポジトリを選択します。

  4. [構成] セクションで [Starter pipeline](スターター パイプライン) を選択します。

  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. 右上隅の [実行] ボタンの横にある [変数] を選択します。 [New variable] を選択します。

  4. 次の変数を追加します。

    変数 説明
    SourceAppId DEV アプリケーションの ID
    TargetAppId PROD アプリケーションの ID
    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 Speech リソース リージョン。 例: westus2
    subscriptionkey Speech リソースのキー。
    appid エクスポートするカスタム コマンドのアプリケーション ID。
  3. これらの変更をリポジトリにプッシュします。

パイプラインの設定

  1. Azure DevOps - パイプラインにアクセスして、[新しいパイプライン] を選択します。

  2. [接続] セクションで、これらのスクリプトが配置されているリポジトリの場所を選択します。

  3. [選択] セクションで、ご自分のリポジトリを選択します。

  4. [構成] セクションで [Starter pipeline](スターター パイプライン) を選択します。

  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
    

    Note

    これらのスクリプトでは、リージョン westus2 を使用していることを前提としています。そうでない場合は、それに応じてタスクの引数を更新します。

  6. [保存して実行] ボタンでドロップダウンを開き、[保存] を選択します。

パイプラインをターゲット アプリケーションに接続する

  1. パイプラインのメイン ページに移動します。

  2. 右上隅のドロップダウンで、 [パイプラインの編集] を選択します。 YAML エディターが表示されます。

  3. 右上隅の [実行] ボタンの横にある [変数] を選択します。 [New variable] を選択します。

  4. 次の変数を追加します。

    変数 説明
    TargetAppId PROD アプリケーションの ID
    SubscriptionKey 両方のアプリケーションで使用されるキー
    カルチャ アプリケーションのカルチャ (en-us)
  5. [実行] を選択し、実行中の "ジョブ" を選択します。 実行中タスクの一覧が表示され、これには、"アプリのインポート" と "アプリのトレーニングと発行" が含まれているはずです

次のステップ