ASK Toolkit for Visual Studio Codeで開発を始める



ASK Toolkit for Visual Studio Codeで開発を始める

ASK toolkitは、Visual Studio Code(VS Code)の拡張機能です。これにより、Alexaスキルの開発やデプロイがより簡単になります。VS Codeのコマンドパレットを使用することで、コードスニペットの生成やJSONスキーマの検証ができ、また機能も見つけやすくなりました。

ASK toolkitはASKコマンドラインインターフェース(CLI)を使用します。ツールキットのコマンドで、適切なASK CLIコマンドを呼び出します。VS Codeの統合ターミナルに、呼び出されたCLIコマンド、コマンドの実行結果、ユーザーの入力を求めるプロンプトが表示されます。

フィードバックを送る

ツールキットからフィードバックや提案を送信するには、VS CodeのステータスバーでContact Alexaをクリックします。

セットアップ

前提条件

  1. Alexaテンプレートを使用するには、Gitをダウンロードしてインストールします。

  2. VS Code(推奨バージョンは1.22.0以上)をダウンロードしてインストールします。

  3. ASK CLI(推奨バージョンは1.5.0以上)をダウンロードして設定します。詳細については、ビデオ ASK CLIクイックスタートガイドを参照してください。

  4. (オプション、推奨)AWS Lambdaを使用してスキルのバックエンドのビジネスロジックをホストします。ビデオAWS認証情報の設定に関するドキュメントを参照してください。

VS CodeにASK toolkitをインストールする

以下のいずれかのオプションを使用してASK toolkitをインストールします。

  • VS Codeマーケットプレイスからツールキットをインストールします。

  • VS CodeのViewメニューでExtensionsを選択して拡張機能ビューを開きます。検索ボックスに、Alexa Skills Kit(ASK)toolkitと入力します。

ツールキットをインストールしたら、Reloadをクリックします。場合によっては、VS Codeの再起動が必要になります。

VS Code拡張機能の詳細については、VS Codeの技術資料を参照してください。

クイックスタート

ステップ1: 新しいスキルまたは既存スキルのクローンを作成する

まず、新しいスキルを作成するか、既存スキルのクローンを作成します。

  1. コマンドパレットを開くには、ViewメニューでCommand Paletteを選択します。WindowsとLinuxではCtrl+Shift+Pキー、MacではShift+Command+Pキーを押して開くこともできます。
  2. ASK toolkitで使用可能なコマンドを確認するには、テキストボックスにASKと入力します。
  3. テンプレートから新しいスキルを作成するにはASK: Create a skill from a templateを選択してから、希望のランタイム言語を選び、その後リストからテンプレートを選択します。

    – または –

    既存スキルのクローンを作成するには、ASK: Clone a skillを選択します。VS Code統合ターミナルにクローンを作成可能なスキルのリストが表示されます。

作成またはクローンしたスキルによって、ASK Toolkitが作成するフォルダー構造は以下のように異なります。

ステップ2: コードスニペットを追加する

ツールキットでは、よく使用するスキルコンポーネント用のコードスニペットを生成できます。

モデルファイル(model/en-US.jsonなど)に、askModelと入力してビルトインインテントをすべて表示します。インテントを選択してからTABキーを押し、コードスニペットを生成します。空のカスタムインテントを作成するには、askModelと入力してからaskModelCustomIntentを選択します。

ASK SDK for Node.jsまたはASK SDK for Pythonに基づいてインテントハンドラーのスニペットを挿入するには、ビジネスロジックコードを含むJavaScript(.js)またはPython (.py)ファイルにaskSDKと入力します。

ステップ3: スキルをデプロイする

スキルパッケージ全体またはスキルの一部をデプロイできます。コマンドパレットで、ASK: Deployと入力してオプションを表示します。

特定のリソースをデプロイするには、エクスプローラーツリービューでリソースを右クリックします。たとえば、skill.jsonファイルを右クリックすると、スキルマニフェストをデプロイすることができます。lambdaフォルダーを右クリックすると、AWS Lambdaをデプロイすることができます。

また、ステータスバーのDeployボタンを使い、拡張機能の設定に応じて、特定のリソースまたはスキル全体をデプロイすることもできます。詳細については、ツールキットを設定するを参照してください。

ステップ4: スキルをテストする

スキルをデプロイしたら、Alexa搭載デバイスでテストを開始できます。開発者コンソールのテストページにあるAlexaシミュレーターを使うこともできます。開発者コンソールを開くには、コマンドパレットでASK: Open the Alexa developer console in the browserを選択します。

次のステップ

その他のコマンドを参照する

ツールキットでは、ASK CLIで使用可能なコマンドにアクセスできます。コマンドパレットを開いてASK: Moreと入力し、下位メニューのコマンドリストから選択すると、コマンドを参照できます。

ツールキットのコマンドが基本ASK CLIコマンドにどう対応しているかについては、ASK toolkitとASK CLIのコマンド対応表を参照してください。

ツールキットを有効/無効にする

ツールキットを有効/無効にしたり、自動アップデートをオンにするには、VS Codeの技術資料で拡張機能の管理に関する項目を参照してください。

ツールキットを設定する(オプション)

VS Codeの設定をアップデートすることでツールキットを設定できます。

WindowsとLinuxで設定を開くには、FileメニューでPreferencesSettingsの順に選択します。Macでは、CodeメニューでPreferencesSettingsの順に選択します。詳細については、VS Codeの技術資料でユーザーとワークスペースの設定に関する項目を参照してください。

以下の設定が可能です。

  • ASK toolkitがデフォルトで使用するASK CLIのプロファイルを指定するには、"ask.profile"に使いたいプロファイルの名前を指定します。たとえば、JSONで、"ask.profile": "profile_name"profile_nameにはプロファイル名を指定)と入力します。
  • デプロイのデフォルト設定を変更するには、"ask.defaultDeployResource""all""skill""model""lambda""isp"のいずれかを指定します。たとえば、JSONで、"ask.defaultDeployResource": "all"と入力します。
  • ファイルの入力が必要なコマンドの参照としてアクティブウィンドウのコンテンツを使用するには、"ask.doesUseCurrentActivewindowContent"trueを指定します。たとえば、JSONで"ask.doesUseCurrentActivewindowContent": trueと入力します。
  • ステージが必要なコマンドのデフォルトステージを設定するには、"ask.granularCommandDefaultStage""development""live"のいずれかを指定します。たとえば、JSONで"ask.granularCommandDefaultStage": "development"と入力します。
  • スキルIDを必要とするコマンド用に.ask/configファイルからスキルIDを読み取るには、"ask.shouldUseSkillIdFoundInCurrentWorkspace"trueを指定します。たとえば、JSONで"ask.shouldUseSkillIdFoundInCurrentWorkspace": trueと入力します。

ASK toolkitとASK CLIのコマンド対応表

ツールキットのコマンド基本CLIコマンド
ASK: Clone a skill

"ask clone"

ASK: Create a skill from a template

"ask new –templates"

ASK: Deploy the skill

"ask deploy"

ASK: Deploy the in-skill product (ISP)

"ask deploy --target isp"

ASK: Deploy the interaction model(s)

"ask deploy --target model"

ASK: Deploy to AWS Lambda

"ask deploy --target lambda"

ASK: Deploy the skill manifest

"ask deploy --target skill"

ASK: Initialize / Configure the ASK CLI

"ask init"

ASK: More commands (low-level commands)コマンドパレットに、他のすべてのコマンドを別のリストとして表示します(下の表を参照)
ASK: Open the Alexa developer console in the browser ブラウザでAlexaの開発者コンソールを開きます
ASK: Open the help documentation in the browser ブラウザでASK CLIのドキュメントを開きます
ASK: Simulate the skill

"ask simulate"

ASK: Delete a skill

"ask api delete-skill"

ASK: Get AWS Lambda logs from AWS CloudWatch

"ask lambda log" – CLIでAWSの認証情報を設定済みでエンドポイントとしてAWS Lambdaを使用する場合にのみ実行されます。

ASK: List the differences between local and remote version of skill resources

"ask diff"

ツールキットのコマンド(ASK: More commands (low-level commands)の下位メニュー)基本CLIコマンド
Skill - Enable a skill

"ask api enable-skill"

Model - Get an interaction model for skill

"ask api get-model"

Model - Get the ETag associated with an interaction model

"ask api head-model"

Model - Create/update the new interaction model for skill

"ask api update-model"

Skill - Create a skill base on the skill manifest

"ask api create-skill"

Skill - Get the skill manifest

"ask api get-skill"

Skill - Update the skill manifest

"ask api update-skill"

Skill - List skills based on Vendor ID and chosen profile

"ask api list-skills"

Skill - Get the skill status

"ask api get-skill-status"

Skill - Get account linking configuration for a skill

"ask api get-account-linking"

Skill - Delete account linking configuration for a skilll

"ask api delete-account-linking"

Skill - List the vendorId associated with your developer account

"ask api list-vendors"

Skill - Submit a skill for certification

"ask api submit"

Skill - Withdraw a skill from the certification process

"ask api withdraw"

Simulate - Simulate a skill

"ask api simulate-skill"

Simulate - Get the simulate result

"ask api get-simulation"

Simulate - Invoke a skill

"ask api invoke-skill"

Skill - Vaildate a skill

"ask api validate-skill"

Skill - Get the skill validation result

"ask api get-validation"

Skill - Grant/Add access to a private skill for the account

"ask api add-private-distribution-account"

Skill - Revoke/Delete access to a private skill from the account

"ask api delete-private-distribution-account"

Skill - List all accounts that the skill have been privately distributed

"ask api list-private-distribution-accounts"

Skill - Disable a skill

"ask api disable-skill"

Skill - Get skill enablement information

"ask api get-skill-enablement"

ISP - Create an in-skill product

"ask api create-isp"

ISP - Update an in-skill product

"ask api update-isp"

ISP - Associate an in-skill product with a skill

"ask api associate-isp"

ISP - Disassociate an in-skill product from a skill

"ask api disassociate-isp"

ISP - Get the definition or summary for an in-skill product

"ask api get-isp"

ISP - List the in-skill product for a vendor

"ask api list-isp-for-vendor"

ISP - List the in-skill product that are associated with a skill

"ask api list-isp-for-skill"

ISP - List the skills that are associated with an in-skill product

"ask api list-skills-for-isp"

ISP - Reset an in-skill product

"ask api reset-isp-entitlement"

ISP - Delete an in-skill product

"ask api delete-isp"

Skill - Get "utterance transcripts"/ ”intent requests history" for a skill

"ask api intent-requests-history"

Skill - Delete a skill

"ask api delete-skill"

AWS Lambda - Get AWS Lambda logs from AWS CloudWatch

"ask lambda log"