CLIコマンドリファレンス、v0

ASK CLIコマンドリファレンス、v0

Alexa Skills Kitコマンドラインインターフェース(ASK CLI)のセットアップの詳細については、Alexa Skills Kitコマンドラインインターフェースのクイックスタートガイドを参照してください。このドキュメントでは、ASK CLIで利用できるすべてのコマンドについて説明します。

ASK CLIのコマンド

開発者アカウントに関連付けられたスキルを処理するASK CLIのコマンドには、2つの種類があります。

  • 1つのコマンドで複数のアクションを実行できる上位コマンドです。スキル開発初心者の方や、API呼び出しを細かく制御する必要がない場合に最適です。newdeployclonesimulateは上位コマンドです。
  • 下位のコマンドは、Alexaスキルの細部を個別に管理するのに使用できます。Alexaスキル管理API操作のシンラッパーとして機能するため、各ASK CLIアクションを細かく制御することができます。すでにアカウントに追加したスキルの一部を変更する場合に特に便利です。apilambdaは下位コマンドです。

$ ask <command> <subcommand> [options]

ASK CLIのコマンドにより、以下のタスクを実行できます。

タスク コマンドまたはオプション
ツールや特定のコマンドのヘルプを取得します。 ask [command] -h | --help
バージョン番号を確認します。 ask -v | --version
Amazon開発者アカウント認証情報を使ってASK CLIを初期化します。スキル操作を実行する前に開発者アカウントの認証情報を使用してツールを初期化するには、このコマンドを実行します。このコマンドはポート9090を使用します。ポートが使用中の場合、エラーになりますのでご注意ください。 ask init
コンピューターに新しいAlexaスキルプロジェクトを作成すします(最小限の変更で作成先に必要なフォルダーやファイルも作成)。 ask new
スキルのマニフェスト、対話モデル、AWS Lambda関数を含むスキルを開発者アカウントにデプロイします。 ask deploy
既存のスキルのクローンをローカルのスキルプロジェクトに作成して、スキルプロジェクトを作成します。 ask clone
ask api simulate-skillを呼び出し、完了するまでシミュレーションステータスのポーリングを継続します。パラメーターは、ask api simulate-skillと同じです。 ask simulate
スキル管理とは別に、AWS Lambda関数のコードを作成および更新します。 ask lambda [subcommand]
開発者アカウントに関連付けられたAlexaスキルの詳細を管理します。Alexaスキルの一部を作成または更新する場合は、これらのコマンドを使用します。 ask api [subcommand]

initコマンド

CLIの認可を行ってAmazon開発者アカウントに関連付けられたスキルの作成や変更を行うには、initコマンドを実行する必要があります。

init コマンドの形式:

$ ask init [-p| --profile <profile>] [--no-browser] [-l| --list-profiles] [--debug]

デフォルトでは、ブラウザウィンドウが開いてサインイン画面が表示されます。

  1. Amazon開発者アカウントの認証情報を使ってサインインします。
  2. ASK CLIを初めて初期化する場合は、ASK CLIに権限を付与します。
  3. 開発者アカウントでサインインしてASK CLIに権限を付与したら、ブラウザを閉じてコマンドプロンプトに戻ります。
  • アカウントに関連付けたベンダーIDが1つの場合、そのIDがASK CLIを使用するよう設定されます。
  • 401権限なしエラーを受信した場合、開発者アカウントは、Alexaスキル管理APIを使用する権限がありません。
  • 開発者アカウントに関連付けたベンダーIDが複数ある場合、ベンダーを選択するプロンプトが表示されます。複数の組織でAlexaスキルを管理している場合などです。特定の組織のベンダーIDを確認するには、developer.amazon.comに開発者アカウントでサインインします。右上のドロップダウンメニューからスキルを管理する組織を選択します。その組織のベンダーIDを表示するには、[https://developer.amazon.com/mycid.html](https://developer.amazon.com/mycid.html)に移動します。

    $ Choose the vendor ID for the skills you want to manage
    1) Amazon: M123456789
    2) Sample-Vendor: M987654321
    
  • 次のエラー:Token refresh errorが発生した場合、認可トークンの有効期限が切れているため、ASK CLIはトークンを更新できません。インターネットに接続されていることを確認し、もう一度実行してください。

次のメッセージ「Profile Vendor ID updated」が出力されたら、ASK CLIは正常に初期化されています。ASK CLIに関連付けられたベンダーは、以下の場所で確認できます。

  • Linux/Mac: ~/.ask/cli_config
  • Windows: %USERPROFILE%/.ask/cli_config

オプション:

--no-browser
任意です。このオプションは、同じ開発環境で、ブラウザを開かずにASK CLIを初期化する方法です。代わりに、コンソールに表示されるURLをコピーし、別の場所のウェブブラウザを使ってリンクを開くことができます。リンクを開くと、Amazonのログインページに移動します。サインインしてターミナルにAuthcodeをコピーすると、ASK CLIが初期化されます。
この初期化ワークフローは、コンソールしかない環境でASK CLIを使用する必要のある開発者の方に便利です。
--profile、-p
任意です。更新または作成するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--list-profiles、-l
任意です。開発者の環境にあるすべてのプロファイルを一覧表示します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

newコマンド

現在のディレクトリに新しいスキルのプロジェクトを作成します。newコマンドを使用して、最低限の変更でスキルのデプロイに必要なディレクトリやファイルを作成します。

スキルの親ディレクトリ名は指定したスキル名と同じです。親ディレクトリにはASK CLIを使ってスキルを管理するために必要なファイルやディレクトリが含まれます。以下の例は、en-USロケールのカスタムスキル用に作成されたディレクトリとファイルです。

-skillName
   -.ask
      -config
   -lambda
      -custom
        -index.js
   -models
      -en-US.json
   -skill.json

スキルは、$HOME/.ask/cli_configファイルに含まれるデフォルトのプロファイル情報を使って作成されます。cli_configファイルには、skillidなど、プロファイルごとのデプロイ設定が含まれます。

new コマンドの形式:

ask new [--template [template-name] [--url <url>]] [-n|--skill-name <name>] [-p| --profile <profile>] [--lambda-name <lambda-name>]

オプション:

--template [template-name] [--url <url>]
任意です。スキルパッケージの生成元テンプレートです。template-nameを省略した場合、ASK CLIはリストからテンプレートを選択するようプロンプトを表示します。オプションで、--url <url>を使って独自のテンプレートリストを指定できます。リストのURLが公開されアクセス可能であること、テンプレートのリポジトリが公開されていることを検証します。デフォルトのリストであるhttps://s3.amazonaws.com/ask-cli/templates.jsonは、Alexa GitHubのリポジトリを使用します。--templateを使用している場合、--skill-nameを省略すると、スキル名がデフォルトでテンプレート名となることにご注意ください。
--skill-name、-n
任意です。スキルに割り当てるスキル名です。英字(a~z)、数字(0~9)、アンダースコア(_)、ダッシュ(-)を使用できます。--templateを指定して--skill-nameを省略すると、スキル名はデフォルトでテンプレート名になります。--templateを指定しない場合に--skill-nameを省略すると、ASK CLIはスキル名を指定するようプロンプトを表示します。
--profile、-p
任意です。スキル作成時に使用するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--lambda-name
任意です。--templateの省略時のみ有効です。スキルのAWS Lambda関数名です。

deployコマンド

開発者アカウントにスキルプロジェクトをデプロイします。オプションでAWS Lambdaコードもデプロイします。

AWS Lambdaを使用してスキルサービスをホストしている場合、以下がデプロイされます。

  • カスタムスキルの場合、skill.jsonファイル、対話モデルファイル、AWS Lambda関数コードファイル
  • スマートホームスキルの場合、skill.jsonファイルとコードファイル
  • フラッシュブリーフィングスキルの場合、skill.jsonファイル

スキルが一度もデプロイされていない場合、ASK CLIは新しいスキルとask-<skillType>-<skillName>-<profile>という名前のAWS Lambda関数を作成します(<skillType><skillName>profileに指定された適切な型、名前、プロファイルを使用)。AWS Lambda関数が、「ask-lambda--」という名前で、[基本実行ポリシー](http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role)にアタッチされたIAMロールを使用して作成されます。AWSユーザーアカウントにロールの作成権限が付与されていることを確認してください。付与されていない場合、このステップは完了できません。

新たに作成されたスキルIDとAWS Lambda ARNが、$HOME/.ask/configのスキルコンフィギュレーションファイルに書き込まれます。

スキルがすでに存在する場合、ASK CLIは既存のスキルを更新します。更新されるリソースには、メタデータやサンプル発話、該当する場合はAWS Lambda関数のリソースが含まれます。このスキルパッケージが以前にask cloneを使用して既存のスキルをダウンロードすることによって作成され、パッケージでask deployを初めて実行する場合、ASK CLIはアカウントの既存スキルを上書きするかどうかを確認するプロンプトを表示します。

スキルのuriが次の形式の場合、AWS ARNを指定してスキルをデプロイすると、skill.jsonファイルのendpointオブジェクトは次のように変更されます。

"apis": {
  "custom": {
    "endpoint": {
      "uri": "arn:aws:lambda:us-east-1:040623927470:function:sampleSkill"
    },
    "regions": {
      "NA": {
        "endpoint": {
          "uri": "https://customapi.sampleskill.com",
          "sslCertificateType": "Trusted"
        }
      }
    }
  }
}

スキルをデプロイすると、この形式に変更されます。

"apis": {
    "custom": {
      "endpoint": {
           "sourceDir": "./lambda/custom/."
      },
      "regions": {
        "NA" : {
          "endpoint": {
            "uri": "https://customapi.sampleskill.com",
            "sslCertificateType": "Trusted"
          }
        }
      }
}

deploy コマンドの形式:

ask deploy [--no-wait] [--target <target>] [-p| --profile <profile>] [--debug]

オプション:

--no-wait
任意です。開発者がデプロイに関して非同期の選択や操作ができるようになるオプションです。このフラグをセットすると、deployコマンドはモデルのビルドを待機しなくなります。
--target、-t
任意です。「target」により、スキルのAWS lambdaコード、スキルプロジェクト、またはその両方をデプロイするかを指定します。「target」の有効な値は、「all」、「lambda」、「skill」、「model」のいずれかです。指定しない場合のデフォルト値は「all」です。
--profile、-p
任意です。スキル作成時に使用するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

各endpoint:uri形式に対する変更を以下に示します。

sourceDirを指定した場合sourceDirを指定しない場合
uri:arnlambda関数をsourceDirからのコードベースを使用するよう更新します sourceDir何も実行されません
uri: function-name (AWSを呼び出すことによりARNを取得)sourceDirからのlambdaユーザーコードベースを更新します sourceDir何も実行されません
uri: function-name (新規作成、AWSで見つからない)lambda関数を作成し、関数名とコードベースを使用しますエラー
uri: https何も実行されません何も実行されません
uriなし urilambda関数、ユーザー、スキル名、コードベースを作成し、ARNをコンフィギュレーションファイルに戻しますapisオブジェクトが存在する場合はエラーです。

cloneコマンド

既存のスキルのクローンを作成して、スキルプロジェクトを作成します。最後にデプロイしたスキルから新しいプロジェクトをセットアップするのに使用します。

clone コマンドの形式:

$ ask clone [-s|--skill-id <skillId>] [-p| --profile <profile>] [--debug]

オプション:

--skill-id、-s
任意です。ターゲットスキルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。クローンされるスキルのプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

ask cloneがオプションなしで実行された場合、スキルのリスト(LastModifiedの順)が表示され、このリストからクローンするスキルを選択できます。

skill-idが指定された場合、コマンドは現在のディレクトリにスキルのクローンを作成します。また、存在する場合はサポートドメインのモデルとLambda関数もダウンロードします。スキルのコードがAWS Lambda関数ではなく、ウェブサービスとしてホストされている場合、ダウンロードされません。

スキル定義のダウンロード後、Lambda関数のARNが.ask/configファイルに書き込まれ、skill.jsonファイルのendpoint:uriプロパティが「sourceDir」で置き換えられます。これは、Lambda関数のコードベースのソースディレクトリです。スキルがLambdaではなく、ウェブサービスとしてホストされている場合、何も置換されません。

simulateコマンド

この機能は、以下のロケールを使用するスキルではサポートされません。

  • en-AU
  • en-CA
  • en-IN
  • ja-JP

ask api simulate-skillを呼び出し、完了するまでシミュレーションステータスのポーリングを継続します。パラメーターは、と同じです。

simulate コマンドの形式:

$ ask simulate [-f| --file <filepath>] [-t| --text <text>] [-l| --locale <locale>] [-s|--skill-id <skillId>] [-p| --profile <profile>] [--debug]

--file、-f
<-t、--text>を指定する場合は使用しません。それ以外の場合は必須です。シミュレーションの発話テキストコンテンツファイルへのパスです。絶対または相対パスで指定できます。
--text、-t
<-f、--file>を指定する場合は使用しません。それ以外の場合は必須です。スキルのシミュレートに使用する発話テキストの入力です。
--locale、-l
ASK_DEFAULT_DEVICE_LOCALE環境変数がセットされている場合は任意、それ以外は必須です。シミュレートするスキルのロケールです。有効な値は、en-USen-GBde-DEのいずれかです。指定しない場合、ロケールを入力するようプロンプトが表示されます。
--skill-id、-s
必須です。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。デフォルト以外のプロファイルを使うには、プロファイル名を指定します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

apiコマンド

apiコマンドには複数のサブコマンドがあります。これらのサブコマンドを使うと、開発者アカウントに関連付けられたスキルの作成や変更が可能です。スキル、対話モデル、アカウントリンク情報の作成と更新、スキル認定プロセスの開始を行うサブコマンドがあります。

対話モデルの詳細については、対話モデルを参照してください。

api コマンドの形式:

$ ask api <subcommand>

サブコマンド

タスク サブコマンド
新しいスキルを作成します create-skill
スキルを取得します get-skill
スキルを削除します delete-skill
スキルのコンフィギュレーションの詳細を更新します update-skill
スキルの対話モデルを取得します get-model
モデルを更新する、またはスキルの対話モデルを新規作成しますモデルのビルドがトリガーされます。 update-model
対話モデルのモデルステータスを取得します get-model-status
createまたはupdateの呼び出し後にスキルのステータスを取得します get-skill-status
対話モデルに関連付けられたETagを取得します head-model
開発者アカウントに関連付けられたスキルのアカウントリンクコンフィギュレーション情報を追加または更新します create-account-linking
スキルのアカウントリンクコンフィギュレーション情報を取得します get-account-linking
スキルの認定を申請します submit
スキルの認定申請を取り消します withdraw
開発者アカウントに関連付けられたベンダーIDを取得します list-vendors
ベンダーのスキルリストを表示します list-skills
非公開の配信アカウントを追加します add-private-distribution-account
非公開の配信アカウントを削除します delete-private-distribution-account
非公開の配信アカウントのリストを表示します list-private-distribution-accounts
スキルを呼び出します invoke-skill
スキルをシミュレートします simulate-skill
シミュレーション結果を取得します get-simulation

create-skillサブコマンド

skill.jsonファイルから開発者アカウントに関連付けられたスキルを作成します。スキルIDとスキルステータスが返されます。

create-skill コマンドの形式:

$ ask api create-skill [-f|--file <fileName>] [-p|--profile <profile>] [--debug]

オプション:

--file、-f
必須です。.json形式のスキル情報ファイルへのパスです。絶対または相対パスで指定できます。
--profile、-p
任意です。スキル作成時に使用するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準出力にデバッグメッセージを追加します。

get-skillサブコマンド

スキルIDを指定してスキルのスキーマをターミナルに出力します。以下のように>演算子を使用して、この出力結果をファイルにリダイレクトすることもできます。

$ ask api get-skill -s {skill_id} > skill.json

get-skill コマンドの形式:

$ ask api get-skill [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。取得するスキルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。スキルのスキーマを出力するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準出力にデバッグメッセージを追加します。

deleteサブコマンド

スキルを削除します。一度削除したスキルを取得することはできません。

delete コマンドの形式:

$ ask api delete-skill [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。削除するスキルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。スキルを削除するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。このプロファイルにはスキルを削除できる権限が付与されている必要があります。
--debug
任意です。標準出力にデバッグメッセージを追加します。

update-skillサブコマンド

--fileオプションで提供したスキルのスキーマを使って指定されたスキルを更新します。

update-skill コマンドの形式:

$ ask api update-skill [-s|--skill-id <skillId>] [-f|--file <fileName>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。更新するスキルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--file、-f
必須です。.json形式のスキル情報ファイルへのパスです。絶対または相対パスで指定できます。
--profile、-p
任意です。スキルのスキーマを作成または更新するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

get-modelサブコマンド

スキルIDとロケールを指定してスキルのモデルスキーマを取得します。以下のように>演算子を使用して、この出力結果をファイルにリダイレクトすることもできます。

$ ask api get-model -s {skill_id} -l {locale} > model.json

get-model コマンドの形式:

$ ask api get-model [-s|--skill-id <skillId>] [-l|--locale <locale>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。ターゲットモデルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--locale、-l
必須です。ターゲットモデルのロケールです。有効な値は、en-USen-GBde-DEのいずれかです。指定しない場合、ロケールを入力するようプロンプトが表示されます。
--profile、-p
任意です。モデルスキーマを取得するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

update-modelサブコマンド

指定のスキルとロケールをに、指定の対話モデルスキーマを設定できます。

update-model コマンドの形式:

$ ask api update-model [-s|--skill-id <skillId>] [-f | --file <fileName>] [-l|--locale <locale>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--file、-f
必須です。models/{locale}.jsonファイルへのパスです。絶対または相対パスで指定できます。
--locale、-l
必須です。ターゲットモデルのロケールです。有効な値は、en-USen-GBde-DEのいずれかです。指定しない場合、ロケールを入力するようプロンプトが表示されます。
--profile、-p
任意です。スキルを更新するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

get-model-statusサブコマンド

指定したモデルの開発ステータスを取得します。

get-model-status コマンドの形式:

$ ask api get-model-status [-s|--skill-id <skillId>] [-l|--locale <locale>] [-p|--profile <profile>] [--debug]

--skill-id、-s
必須です。ステータスを確認しているスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--locale、-l
必須です。ターゲットモデルのロケールです。有効な値は、en-USen-GBde-DEのいずれかです。指定しない場合、ロケールを入力するようプロンプトが表示されます。
--profile、-p
任意です。開発ステータスを取得するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

get-skill-statusサブコマンド

スキルステータスを取得します。

get-skill-status コマンドの形式:

$ ask api get-skill-status [-s|--skill-id <skillId>] [-l|--locale <locale>] [-p|--profile <profile>] [--debug]

--skill-id、-s
必須です。ステータスを確認しているスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。スキルステータスを取得するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

head-modelサブコマンド

スキルIDとロケールを指定してスキルモデルのETagを取得できます。Etagはリソースのバージョンを示す一意の識別子です。モデルに対して操作を行う前にモデルが変更されていないことを検証します。

head-model コマンドの形式:

$ ask api head-model [-s|--skill-id <skillId>] [-l|--locale <locale>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。ターゲットモデルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--locale、-l
ターゲットモデルのロケールです(必須)。有効な値は、en-USen-GBde-DEのいずれかです。指定しない場合、ロケールを入力するようプロンプトが表示されます。
--profile、-p
任意です。ETagを取得するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

create-account-linkingサブコマンド

スキルIDを指定してアカウントリンクコンフィギュレーションの詳細情報を追加または更新します。

create-account-linkingを呼び出すと、以下の値を入力するようプロンプトが表示されます。これらの値の詳細については、ご使用のシステムのユーザーとAlexaユーザーをリンクするおよびaccountLinkingRequestオブジェクトを参照してください。

  • 認証画面のURL
  • クライアントID
  • スコープ(カンマ区切りリスト)
  • ドメイン(カンマ区切りリスト)
  • Authorization Grant種別 - 矢印キーを使って次のいずれかを選択:IMPLICITまたは AUTH_CODE
  • AUTH_CODEを選択する場合、追加の情報を入れてください。
    • アクセストークンURL
    • クライアントシークレット
    • クライアント認証スキーム:HTTP_BASICまたは REQUEST_BODY_CREDENTIALS
    • デフォルトのトークン有効期間(秒)(任意)

アカウントリンク情報は、機密保持のためコンピューターには保存されません。

create-account-linking コマンドの形式:

$ ask api create-account-linking [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。アカウントリンク情報を追加するスキルのIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。アカウントリンクを作成するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

get-account-linkingサブコマンド

アカウントリンクコンフィギュレーションの詳細を取得して、コンソールに出力します。セキュリティを守るため、この情報はコンピューターに保存しないでください。

get-account-linking コマンドの形式:

$ ask api get-account-linking [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。アカウントリンク情報を取得するスキルのIDです。指定する形式: amzn1.ask.skill.12345678-1234-1234-123456789123
--profile、-p
任意です。アカウントリンクコンフィギュレーションを取得するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

submitサブコマンド

スキルの認定を申請できます。

submit コマンドの形式:

$ ask api submit [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。ターゲットスキルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。スキル作成時に使用するプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

withdrawサブコマンド

スキルの認定申請を取り消すことができます。取り消しには、理由を入力するよう求められます。選択肢は以下のとおりです。

  • これはテスト用のスキルで、認定対象ではありません
  • スキルに機能を追加したいと考えています
  • スキルに問題が見つかりました
  • 認定申請の結果をまだ受け取っていません
  • スキルをすぐに公開する予定がありません。
  • その他

その他を選択する場合、取り消し理由の詳細を入力できます。

withdraw コマンドの形式

$ ask api withdraw [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。ターゲットスキルのスキルIDです。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。スキルを取り消すプロファイルです。指定しない場合は、デフォルトのプロファイルが使用されます。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

list-vendorsサブコマンド

開発者アカウントに関連付けられたベンダーIDを取得し、ベンダーIDに対して開発者に関連付けられたロールを指定します。

list-vendors コマンドの形式:

$ ask api list-vendors [-p|--profile <profile>] [--debug]

サンプル出力:

[
  {
    "id": "MYVENDORID1234567",
    "name": "Amazon",
    "roles": [
      "ROLE_ADMINISTRATOR"
    ]
  }
]

オプション:

--profile、-p
任意です。デフォルト以外のプロファイルを使うには、プロファイル名を指定します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

list-skillsサブコマンド

開発者アカウントに関連付けられたスキルをJSON形式で一覧表示します。

list-skills コマンドの形式:

$ ask api list-skills [-p|--profile <profile>] [--debug]

サンプル出力:

{
  "skills": [
    {
      "lastUpdated": "2017-07-11T19:29:57.120Z",
      "nameByLocale": {
        "en-US": "example"
      },
      "skillId": "amzn1.ask.skill.6acdbdf8-8420-440e-823e-aaaaaaaabbbb"
    },
    {
      "lastUpdated": "2017-07-05T21:11:16.947Z",
      "nameByLocale": {
        "en-US": "example1"
      },
      "skillId": "amzn1.ask.skill.81ded88f-0d0a-4612-aaaaaaaabbbb"
    },
    {
      "lastUpdated": "2017-07-05T21:08:03.693Z",
      "nameByLocale": {
        "en-US": "example2"
      },
      "skillId": "amzn1.ask.skill.1e9a668a-1746-451a-b401-aaaaaaaabbbb"
    },
    {
      "lastUpdated": "2017-07-05T17:29:30.046Z",
      "nameByLocale": {
        "en-US": "example3"
      },
      "skillId": "amzn1.ask.skill.2801f509-5e8e-4944-b48d-aaaaaaaabbbb"
    }
  ]
}

オプション:

--profile、-p
任意です。デフォルト以外のプロファイルを使うには、プロファイル名を指定します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

add-private-distribution-accountサブコマンド

スキルを指定して非公開の配信リストにアカウントを追加します。

add-private-distribution-account コマンドの形式:

ask api add-private-distribution-account <-s|--skill-id <skillId>> --stage live <--account-id <id>>

オプション:

--skill-id、-s
必須です。ターゲットスキルのIDです。
--stage
必須です。スキルのステージです。サポートされる値は「live」です。
--account-id
必須です。Alexa for Business企業のアカウントARNです(arn:aws:iam::123456789012:rootなど)。

delete-private-distribution-accountサブコマンド

スキルを指定して非公開の配信リストからアカウントを削除します。

delete-private-distribution-account コマンドの形式:

ask api delete-private-distribution-account <-s|--skill-id <skillId>> --stage live <--account-id <id>>

オプション:

--skill-id、-s
必須です。ターゲットスキルのIDです。
--stage
必須です。スキルのステージです。サポートされる値は「live」です。
--account-id
必須です。Alexa for Business企業のアカウントARNです(arn:aws:iam::123456789012:rootなど)。

list-private-distribution-accountsサブコマンド

スキルを指定して非公開の配信リストにあるアカウントのリストを表示します。

list-private-distribution-accounts コマンドの形式:

ask api list-private-distribution-accounts <-s|--skill-id <skillId>> --stage live

オプション:

--skill-id、-s
必須です。ターゲットスキルのIDです。
--stage
必須です。スキルのステージです。サポートされる値は「live」です。

invoke-skillサブコマンド

この機能は、以下のロケールを使用するスキルではサポートされません。

  • en-AU
  • en-CA
  • en-IN
  • ja-JP

指定したスキルを呼び出します。このコマンドを使えるようにするには、まずAlexaアプリからスキルを有効にする必要があります。

invoke-skill コマンドの形式:

$ ask api invoke-skill [-f|--file <file>] [-s|--skill-id <skillId>] [-j|--json <json>] [-e|--endpointRegion <endPointRegion>] [-p|--profile <profile>] [--debug]

オプション:

--skill-id、-s
必須です。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--file、-f
<-j、--json>を指定する場合は使用しません。それ以外の場合は必須です。スキル呼び出しリクエストファイルへのパスです。リクエストの形式はこちらに定義されています。絶対または相対パスで指定できます。
--json、-j
<-f、--file>を指定する場合は使用しません。それ以外の場合は必須です。JSON文字列です。
--endpointRegion、-e
必須です。スキルで使用するエンドポイントのリージョンを示します。
--profile、-p
任意です。デフォルト以外のプロファイルを使うには、プロファイル名を指定します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

simulate-skillサブコマンド

この機能は、以下のロケールを使用するスキルではサポートされません。

  • en-AU
  • en-CA
  • en-IN
  • ja-JP

指定したスキルをシミュレートします。このコマンドを使えるようにするには、まずAlexaアプリからスキルを有効にする必要があります。

simulate-skill コマンドの形式:

$ ask api simulate-skill [-f|--file <file>] [-t|--text <text>] [-l|--locale <locale>] [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--file、-f
<-t、--text>を指定する場合は使用しません。それ以外の場合は必須です。シミュレーションの発話テキストコンテンツファイルへのパスです。絶対または相対パスで指定できます。
--text、-t
<-f、--file>を指定する場合は使用しません。それ以外の場合は必須です。スキルのシミュレートに使用する発話テキストの入力です。
--locale、-l
ASK_DEFAULT_DEVICE_LOCALE環境変数がセットされている場合は任意、それ以外は必須です。シミュレートするスキルのロケールです。有効な値は、en-USen-GBde-DEのいずれかです。指定しない場合、ロケールを入力するようプロンプトが表示されます。
--skill-id、-s
必須です。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。デフォルト以外のプロファイルを使うには、プロファイル名を指定します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

get-simulationサブコマンド

指定したシミュレーションIDのシミュレーション結果を取得します。simulate-skillコマンドを実行するたびに、シミュレーションIDが生成されます。

get-simulation command format:

$ ask api get-simulation [-i|--simulation-id <simulation-id>] [-s|--skill-id <skillId>] [-p|--profile <profile>] [--debug]

オプション:

--simulation-id、-i
必須です。UUIDの形式(b8e4ea04-7df3-11e7-bb31-be2e44b06b34)で指定する必要があります。
--skill-id、-s
必須です。amzn1.ask.skill.12345678-1234-1234-123456789123の形式で指定する必要があります。
--profile、-p
任意です。デフォルト以外のプロファイルを使うには、プロファイル名を指定します。
--debug
任意です。標準エラー出力にデバッグメッセージを追加します。

lambdaコマンド

Lambdaコマンドを使うと、AWS Lambda関数のコードを取得してポストできます。

lambda コマンドの形式:

$ ask lambda <subcommand> [-f|--function <functionName>] [other options]

サブコマンド

タスク サブコマンド
既存のLambda関数をダウンロードします download
既存のLambda関数をアップロードします upload
Lambda関数のCloudwatchログを表示します log

downloadサブコマンド

指定したLambda関数のコードを指定した場所(指定は任意)にダウンロードします

download コマンドの形式:

$ ask lambda download [-f|--function <functionName>] [-d|--dest <destPath>]

オプション:

--function、-f
任意です。Lambda関数の名前です。このオプションがセットされない場合、ダウンロードを実行するとコンフィギュレーションされたアカウントのLambda関数のリストを表示します。開発者はこの番号付きリストから1つ選択できます。
--dest、-d
任意です。Lambda関数のダウンロード先の場所を指定します。指定されない場合、Lambdaは現在の作業ディレクトリにダウンロードされます。

uploadサブコマンド

現在のディレクトリまたは指定ディレクトリのファイルを指定したLambda関数にアップロードします。

upload コマンドの形式:

$ ask lambda upload [-f|--function <functionName>] [-s|--src <sourcePath>]

オプション:

--function、-f
必須です。ターゲットのLambda関数名を指定します。
--src、-s
任意です。アップロード元のソースディレクトリを指定します。指定しない場合、現在の作業ディレクトリのコンテンツがアップロードされます。

logサブコマンド

指定したLambda関数のCloudWatchログを表示できます。

log コマンドの形式:

$ ask lambda log [-f|--function <functionName>] [--start-time <startTime>] ` [–end-time] [--limit] [--raw]`

**オプション:**

--function、-f
必須です。Lambda関数の名前です。
--start-time
任意です。表示するログの開始時間です。1日前の場合は1dayago、30時間前の場合は30hoursagoの形式で記述する必要があります。デフォルトは1dayagoです。
--end-time
任意です。表示するログの終了時間です。1日前の場合は1dayago、30時間前の場合は30hoursagoの形式で記述する必要があります。
--limit
任意です。表示するログエントリの数を示す整数値です。
--raw
任意です。色や書式なしでログを表示します。

ASK CLIコマンドのデバッグモード

次のほとんどのコマンドは、説明に記載されているとおり、デバッグモードで実行できます。デバッグモードにするには、コマンドに–debugを追加します。

コマンドの実行完了後にデバッグメッセージが表示される以外は、–debugを指定しない場合と同じ結果が表示されます。このデバッグメッセージには以下のフィールドがあります。

{timestamp, api-name, request-id, method, url, response-code, request-header, request-body, response-header, response-body}

これらの結果を保存するには、コマンドを実行し、パイプを使って以下のように出力をローカルテキストに送ります。

ask some-command --debug 2> debug.txt