Visual Studio Codeでスキルをテストする


Visual Studio Codeでスキルをテストする

Alexa Skills Kit Toolkit for Visual Studio Code(ASK Toolkit for VS Code)を使うと、スキルの呼び出しに対してスキルコードをローカルでテストできます。リクエストを開発者のコンピューター上のAlexaプロキシにルーティングしてコードをテストできます。スキルコードをAWS Lambdaにデプロイしなくても、ローカルテストでスキルコードへの変更を検証することができます。別のツールやページに移動することなく、VS Code Alexaシミュレーターページからスキルをテストできます。また、Alexa開発者コンソールのAlexaシミュレーターやASKコマンドラインインターフェース(CLI)など、他の方法でローカルスキルをテストすることもできます。

前提条件とインストール手順については、ASK Toolkit for VS Codeで開発を始めるを参照してください。

前提条件

ローカルスキルを呼び出す前に、ask-sdk-local-debugをスキルプロジェクトに追加します。SDK言語の手順に従って、ask-sdk-local-debugをスキルに追加します。

テスト環境をセットアップする

VS Codeでスキルをテストする前に、スキルがAlexaプロキシに接続できるよう、設定を追加する必要があります。シミュレーターでオーディオ出力とAlexa Presentation Language(APL)タッチイベントを有効にするには、仮想Alexaデバイスを登録する必要があります。

Alexaデバッガー設定を追加する

まず、スキルがAlexaプロキシに接続できるよう、Alexaデバッガー設定を追加します。

Alexaデバッガー設定を追加する

  1. まだlaunch.jsonファイルを作成していない場合は、作成します。

    1. Runメニューを開き、Add Configuration…を選択します。
    2. Select Environmentダイアログボックスで、プログラミング言語としてNode.jsPythonのいずれかを選択します。
      このアクションにより、プロジェクトにlaunch.jsonファイルが追加され、エディターでファイルが開きます。次のようなコードが表示されます。

      {
          "version": "0.2.0",
          "configurations": [
              {
                  "type": "node",
                  "request": "launch",
                  "name": "Launch Program",
                  "skipFiles": [
                      "<node_internals>/**"
                  ],
                  "program": "${file}"
              }
          ]
      }
      
  2. Alexaデバッガー設定をlaunch.jsonファイルに追加していない場合は、追加します。

    1. Runメニューを開き、Add Configuration…を選択します。
    2. オプションのリストから、ASK: Alexa Skills Debugger (Node.js)ASK: Alexa Skills Debugger (Python)のいずれかを選択します。
      このアクションにより、設定コードがlaunch.jsonファイルに追加されます。次のようなコードが表示されます。

      {
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "Debug Alexa Skill (Node.js)",
                  "type": "node",
                  "request": "launch",
                  "program": "${command:ask.debugAdapterPath}",
                  "args": [
                      "--accessToken",
                      "${command:ask.accessToken}",
                      "--skillId",
                      "${command:ask.skillIdFromWorkspace}",
                      "--handlerName",
                      "handler",
                      "--skillEntryFile",
                      "${workspaceFolder}/lambda/index.js"
                  ]
              },
              {
                  "type": "node",
                  "request": "launch",
                  "name": "Launch Program",
                  "skipFiles": [
                      "<node_internals>/**"
                  ],
                  "program": "${file}"
              }
          ]
      }
      
    3. 変更をlaunch.jsonファイルに保存します。
  3. Alexaデバッガー設定で、開発者アカウントのあるAlexaリージョンを指定します。
    有効なリージョンは、ヨーロッパ(EU)、極東(FE)、北米(NA)のいずれかです。デフォルトのリージョンは北米です。

    1. 開発者アカウントのマーケットプレイスに対応するAlexaリージョンについては、リソースをさまざまなAWSリージョンでホスティングするの表を参照してください。
    2. launch.jsonファイルを開きます。
    3. args配列にリージョンを追加するか、既存のリージョンを編集します。
      リージョンの有効な値は、EUFENAのいずれかです。コードは次のようになります。
      {
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "Debug Alexa Skill (Node.js)",
                  "type": "node",
                  "request": "launch",
                  "program": "${command:ask.debugAdapterPath}",
                  "args": [
                      "--accessToken",
                      "${command:ask.accessToken}",
                      "--skillId",
                      "${command:ask.skillIdFromWorkspace}",
                      "--handlerName",
                      "handler",
                      "--skillEntryFile",
                      "${workspaceFolder}/lambda/index.js",
                      "--region",
                      "FE"
                  ]
              },
              {
                  "type": "node",
                  "request": "launch",
                  "name": "Launch Program",
                  "skipFiles": [
                      "<node_internals>/**"
                  ],
                  "program": "${file}"
              }
          ]
      }
      
    4. 変更をlaunch.jsonファイルに保存します。

仮想Alexaデバイスを登録する(ベータ版)

シミュレーターでオーディオ出力とAlexa Presentation Language(APL)タッチイベントを有効にするには、手順に従って仮想Alexaデバイスをセットアップしてから、Amazonアカウントにデバイスを登録します。仮想デバイスを作成するには、登録済みの製品が必要です。詳細については、Register a Product with Alexa Voice Service (AVS)を参照してください。

AVSダッシュボードを開き、製品名を選択してデバイス登録に使用する製品に関する情報を収集します。

仮想Alexaデバイスを作成する

  1. アクティビティバーで、Alexaアイコンをクリックします。
  2. Skills Managementに移動し、省略記号(…)をクリックしてMore Actionsを開き、Register deviceを選択します。
    または、SkillsAlexa Presentation Language (APL)の順に展開して、Previewを選択します。APLプレビューウィンドウをクリックし、ポップアップ表示されたRegister Deviceをクリックします。
  3. Product IDに、AVS製品IDを入力します。
  4. Client IDに、選択した製品IDに関連するクライアントIDを入力します。
    詳細については、Set up your AVS security profileを参照してください。
  5. Client secretに、選択した製品に関連するクライアントシークレットを入力します。
  6. Regionで、Amazon開発者アカウントを作成したリージョンを選択します。
  7. デバイスを作成するには、Submitをクリックします。

Amazonアカウントにデバイスを登録する

  1. 青いボックスで、デバイスIDをコピーします。
  2. ブラウザでデバイス登録ページを開くには、Amazon account linkingリンクをクリックします。
    Amazon開発者アカウントへのサインインが必要になる場合があります。
  3. Register Your Deviceに6桁のコードを入力し、Continueをクリックします。
  4. Amazonアカウントにデバイスを登録するには、Continueをクリックします。
    登録をキャンセルするには、Cancelをクリックします。
  5. プロンプトが表示されたら、Allowをクリックして登録を有効にします。
  6. ブラウザウィンドウを閉じます。

デバイス設定を適用する

  1. VS Codeで、Device registryページに戻ります。
  2. テスト用に登録したデバイスを使用するには、Applyを選択します。
    登録をキャンセルするには、Cancelを選択します。

Applyを選択すると、シミュレーターが再起動され、仮想デバイスがオーディオ出力とAPLタッチイベントにデフォルトで使用される設定になります。これでスキルをシミュレーターでテストする準備ができました。

登録済みのデバイスを削除する(ベータ版)

登録済みのデバイスを削除し、オーディオ出力とAPLタッチイベントなしで引き続きシミュレーターを使用することができます。

登録済みデバイスを削除する

  1. アクティビティバーで、Alexaアイコンをクリックします。
  2. Alexa Skills ToolkitサイドバーでSkills Managementに移動し、省略記号(…)をクリックしてMore Actionsを開いて、Delete deviceを選択します。
  3. デバイスを削除してシミュレーターを更新するには、ポップアップボックスでYesを選択します。デバイスの削除をキャンセルするには、Noを選択します。

ローカルのAlexaスキルをテストする

この手順を実行する前に、前提条件テスト環境をセットアップするの手順を完了してください。

VS CodeでローカルAlexaスキルをテストする

  1. Runメニューを開き、Start Debuggingを選択します。

    スキルコードが開始し、VS CodeがコンピューターからAlexaプロキシサービスへのウェブソケット接続を確立します。スキルへのリクエストは、Alexaプロキシサービスとの接続が開いている限り、ローカルスキルコードに直接ルーティングされます。接続は1時間開いたままになります。1つのスキルに複数の接続を作成することはできません。

  2. 次の方法のいずれかでスキルをテストします。

Alexaローカルスキルのテストを停止する

  • Runメニューを開き、Stop Debuggingを選択します。
    このアクションにより、Alexaプロキシサービスへの接続が終了します。Alexaは、ローカルスキルではなく、スキルに設定されたエンドポイントへの呼び出しに戻ります。

VS CodeのAlexaシミュレーターでスキルをテストする

VS CodeのSkill Simulationページからスキルをテストできます。スキルシミュレーターを使うと、VS Codeから移動することなくAlexaに発話を送信し、応答を受け取ることができます。

以下は、VS CodeのSkill Simulationページのスクリーンショットです。

VS CodeのSkill Simulationページ

VS CodeのAlexaシミュレーターでローカルスキルをテストする

  1. アクティビティバーで、Alexaアイコンをクリックします。
  2. Alexa Skills ToolkitサイドバーでSkillsをクリックし、スキルをクリックして開きます。
  3. Test skillをクリックし、Open simulatorを選択します。
  4. Skill SimulationページのTalk to Alexaセクションで、Skill stageとしてDevelopmentを選択します。
    このアクションにより、スキルのテストをオンにし、ページ末尾にある発話テキストボックスを有効にします。
  5. Localeで、テストする言語とロケールを選択します。
    スキルには、選択した言語とロケールの対話モデルが含まれている必要があります。詳細については、対話モデルを参照してください。
  6. ページ末尾のテキストボックスに発話を入力し、Sendをクリックします。
    シミュレーターがリクエストをAlexaに送信し、応答が表示されます。
  7. 応答を受信したら、以下のアクションを実行できます。

    • 最近のリクエストと応答のJSONを確認するには、Skill I/Oタブを選択します。
    • 検討されたインテントなどの情報を確認するには、Execution Infoタブを選択します。
    • スキルからの応答がデバイスの画面にどう表示されるかを確認するには、Device Previewタブを選択します。
      • round、small、medium、large、full-screen TVからビューを選択するには、Change viewportを使用します。
      • 画面内の項目を選択するには、選択したい項目をクリックします。
  8. 必要に応じて、上述のステップを繰り返します。
    新しい発話を入力するか、キーボードの上下矢印キーを使って前の発話を入力します。Alexaが前のリクエストに応答するまでは、新しい発話を入力できません。仮想デバイスを登録済みの場合、Alexaはオーディオ応答を再生します。
  9. Talk to Alexaセクションの発話と応答は、いつでもResetボタンをクリックして消去できます。
  10. スキルをオフにしてテストセッションを終了するには、テキストボックスにexitと入力してSendをクリックします。

VS CodeのAlexaシミュレーターでセッションの保存や再生を行う

スキルをテストしている間、同じ発話を繰り返しAlexaに送信する場合があります。テストセッション中に入力した発話を保存して、後で再生できます。

VS CodeのAlexaシミュレーターでテストセッションの保存や再生を行う

  1. セッションを保存するには、Exportボタンをクリックします。
    シミュレーターにより発話がjsonファイルとして保存され、ファイルを保存する場所を選択するようプロンプトが表示されます。
  2. セッションを再生するには、Alexa Skills ToolkitサイドバーでSkillsをクリックし、スキルをクリックして開きます。
  3. Test skillをクリックし、Replay sessionを選択します。
    シミュレーターにより、以前に保存したファイルの場所を指定するようプロンプトが表示されます。ファイルを指定したら、シミュレーターで発話が再生されます。
  4. スキルをオフにしてテストセッションを終了するには、テキストボックスにexitと入力してSendをクリックします。


このページは役に立ちましたか?

最終更新日: 2022 年 07 月 28 日