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 ディレクトリ内のスクリプトをご自分のリポジトリに複製します。 必ず同じパスを保持してください。
パイプラインの設定
Azure DevOps - パイプラインにアクセスして、[新しいパイプライン] を選択します。
[接続] セクションで、これらのスクリプトが配置されているリポジトリの場所を選択します。
[選択] セクションで、ご自分のリポジトリを選択します。
[構成] セクションで [Starter pipeline](スターター パイプライン) を選択します。
次に、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
これらのスクリプトでは、リージョン
westus2
を使用していることを前提としています。そうでない場合は、それに応じてタスクの引数を更新します。[保存して実行] ボタンでドロップダウンを開き、[保存] を選択します。
パイプラインをアプリケーションに接続する
パイプラインのメイン ページに移動します。
右上隅のドロップダウンで、 [パイプラインの編集] を選択します。 YAML エディターが表示されます。
右上隅の [実行] ボタンの横にある [変数] を選択します。 [New variable] を選択します。
次の変数を追加します。
変数 説明 SourceAppId DEV アプリケーションの ID TargetAppId PROD アプリケーションの ID SubscriptionKey 両方のアプリケーションで使用されるキー カルチャ アプリケーションのカルチャ (en-us) [実行] を選択し、実行中の "ジョブ" を選択します。
実行中タスクの一覧が表示され、これには、"ソース アプリのエクスポート"、"ターゲット アプリへのインポート"、"ターゲット アプリのトレーニングと発行" が含まれているはずです
ソース コードからのデプロイ
アプリケーションの定義をリポジトリに保持する場合は、ソース コードからデプロイするためのスクリプトが用意されています。 このスクリプトは bash 内にあるため、Windows をお使いの場合は、Linux サブシステムをインストールする必要があります。
スクリプトは、音声アシスタント - カスタム コマンドでホストされています。 bash ディレクトリ内のスクリプトをご自分のリポジトリに複製します。 必ず同じパスを保持してください。
リポジトリを準備する
アプリケーションのディレクトリを作成します。この例では、"apps" という名前のディレクトリを作成します。
次の 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。 これらの変更をリポジトリにプッシュします。
パイプラインの設定
Azure DevOps - パイプラインにアクセスして、[新しいパイプライン] を選択します。
[接続] セクションで、これらのスクリプトが配置されているリポジトリの場所を選択します。
[選択] セクションで、ご自分のリポジトリを選択します。
[構成] セクションで [Starter pipeline](スターター パイプライン) を選択します。
次に、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 を使用していることを前提としています。そうでない場合は、それに応じてタスクの引数を更新します。
[保存して実行] ボタンでドロップダウンを開き、[保存] を選択します。
パイプラインをターゲット アプリケーションに接続する
パイプラインのメイン ページに移動します。
右上隅のドロップダウンで、 [パイプラインの編集] を選択します。 YAML エディターが表示されます。
右上隅の [実行] ボタンの横にある [変数] を選択します。 [New variable] を選択します。
次の変数を追加します。
変数 説明 TargetAppId PROD アプリケーションの ID SubscriptionKey 両方のアプリケーションで使用されるキー カルチャ アプリケーションのカルチャ (en-us) [実行] を選択し、実行中の "ジョブ" を選択します。 実行中タスクの一覧が表示され、これには、"アプリのインポート" と "アプリのトレーニングと発行" が含まれているはずです