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 skill

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 - Validate 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