ask-cliで知っておくと便利なシェルコマンド集(随時更新)

芸ってほどでもないかもですが、覚えておくと便利なやつをまとめました。基本的には、skill idなどの情報をcatとjpで取ってきてぶっこむだけです。 テストの有効化 ask deployしただけだとテストが有効になって […]

広告ここから
広告ここまで

目次

    芸ってほどでもないかもですが、覚えておくと便利なやつをまとめました。基本的には、skill idなどの情報をcatとjpで取ってきてぶっこむだけです。

    テストの有効化

    ask deployしただけだとテストが有効になっていない時があります(バージョンの問題かもですが)。なのでテストを有効にするコマンドもいれておきましょう。だいたいめんどくさくなるので、以下のようなファイルを作っておくと1発でいけます。

    #!/bin/sh
    ask deploy
    ask api enable-skill -s $(cat .ask/config | jq -r .deploy_settings.default.skill_id)

    もしくは&&でつないでワンライナーでもよいかもしれません。

    $ ask deploy && ask api enable-skill -s $(cat .ask/config | jq -r .deploy_settings.default.skill_id)

    スキルのテスト

    実装ミスなどで正しくレスポンスが返せていない場合がないかを確認するのに、ask simulationコマンドは便利です。ですが引数が多いので、これもcat & jqで楽しましょう。

    $ ask simulate -s $(cat .ask/config | jq -r .deploy_settings.default.skill_id) -l en-US -t "open $(cat models/en-US.json | jq -r .interactionModel.languageModel.invocationName)"

    openen-USの部分はお使いの言語に合わせて変更してください。

    Lambdaのログ取得

    ask-cliでCloudWatchに記録されたログの取得もできます。

    $ ask lambda log -f $(cat .ask/config | jq -r .deploy_settings.default.resources.lambda[0].functionName)

    v1.4.1時点ではtailはありません。欲しいというかたは、LambdaのデプロイだけServerless Frameworkを使われると良いかなと思います。

    スキル公開申請

    軽微な変更やask simulateなどでテストしてる場合、ダッシュボードで再度申請ボタンを押すことが面倒に感じることもあります。そんな時はask api submitでコマンドから申請しちゃいましょう。

    $ ask api submit -s $(cat .ask/config | jq -r .deploy_settings.default.skill_id)

    [2018/12/05追加]スキルバリデーション結果の確認

    en-USなど限られた言語のみですが、申請前に一定の項目について事前に自動レビューを受けることができるask validateコマンドがあります。しかしこのコマンドはPassしているものも返してきますので、Failedとなっている項目だけピックアップする必要があります。

    そこでjqのselectを利用してピックアップしましょう。0件なら申請準備OKです。

    $ ask validate -l en-US | jq '.result.validations[] | select(.status == "FAILED")'
    ✓ Validation created for validation id: xxxxx-xxxx-xxxx
    ◟ Waiting for validation response{
      "locale": "en-US",
      "title": "The example phrases that you choose to present to users in the Alexa app must be selected from your sample utterances. For example: \"Alexa, ask {your invocation name} to {sample utterance present in your intent}.\"Please see <a href=\"https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#cert-utterances-support-invocation\">our documentation</a> for more information on ensuring your sample utterances support invocation phrases. Please also see <a href=\"https://developer.amazon.com/blogs/alexa/post/74d0ed59-ad4f-470a-abcf-d37c10a1dfd6/crafting-great-example-phrases-that-meet-certification-requirements\"> our blogpost</a> for more guidance on creating example phrases.",
      "status": "FAILED",
      "importance": "REQUIRED"
    }
    {
      "locale": "en-US",
      "title": "The example phrases that you chose to present to users in the companion app currently use unsupported launch phrasing.\r\nPlease refer to <a href=\"https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#cert-invoke-specific-request>Understanding how users invoke custom skills</a> for more information on supported launch phrasing.",
      "status": "FAILED",
      "importance": "REQUIRED"
    }
    

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark