LoginSignup
3
2

More than 3 years have passed since last update.

Alexaスキル開発で「スキルからの応答に問題があります」が発生したときのトラブルシューティング

Last updated at Posted at 2018-08-31

Alexaスキル開発していますか?
自分の実装したとおりにAlexa様が話してくれるのはとても楽しいのですが、Webやモバイルアプリとはまた異なるインターフェイスなこともあり、開発環境にはやや面倒臭さを感じる今日このごろです。

「スキルからの応答に問題があります」

スキルをLambdaへデプロイ後、動作確認のためにalexa developer consoleから「テスト」を実行していることと思います。
ウェイクワードを発話していざ実装したインテントリクエストを起動すると、

「スキルからの応答に問題があります」

Alexa_Skills_Kit_Developer_Console.png

無慈悲なこの文言が帰ってきます。
皆さんはこんなときどうしていますか? むしろ教えてほしいくらいなのですが、自分なりの調査方法を載せておきます。

1. Cloud9でデバッグする

これが一番です。
利用料が多少かかりますが、些末なものです。

AWS Cloud9 料金

(ちなみにAWS Cloud9は東京リージョンでは利用できません。なので、Lambdaが東京リージョンへデプロイされている場合はこの方法は使えません。ここは多言語対応を見込んでバージニア北部リージョンあたりへデプロイするのはどうでしょうか)

右ペインの「AWS Resources」内の「Remote Functions」ツリーにcloud9と同じリージョンにデプロイされたLambdaファンクションの一覧が表示されているので、右クリック=>Importを選択します。
すると左ペインのEnvironmentツリー内にLambdaファンクションが表示されます。

cloud9_-_AWS_Cloud9_2.png

cloud9_-_AWS_Cloud9_1.png

まずはここでもエラーが再現するかやってみます。
上の「Run」ボタンをクリックすると画面が分割され、デバッグ用のウィンドウが表示されます。

"payload"と表示されているエリアにalexa developer consoleに出力された、こちらが発話した際にAlexaが読み取ってLambdaに投げたJSONをコピペし、「Run」ボタンを押します。
すると、"Response"エリアにLambdaの実行結果が出力されます。

cloud9_-_AWS_Cloud9.png

ここで何某かのエラーが出力されていればあとはブレークポイントを張ってデバッグすれば良いです。
cloud9でのデバッグ機能の使い方についてはここでは触れません。

2. Lambda Management Consoleでデバッグする

まれに、alexa developper consoleではエラーになるのにcloud9では正常なレスポンスが返される、ということがあります。
大抵の場合は権限ですが、まずは調べてみましょう。

AWS Management ConsoleからデプロイしたLambdaの編集ページを開きます。
右上のセレクトボックスから「テストイベントの設定」を選択します。

Lambda_Management_Console_1.png

ダイアログが開くので、ここに先ほどと同じJSONをコピペし、適当な名前をつけて保存します。
あとは「テスト」ボタンを押すだけです。
cloud9では再現しなかったエラーがこちらでは再現するかもしれません。
エラーログまで出力されるので、原因究明まで一瞬ですね。

Lambda_Management_Console.png

「AskSdk.DynamoDbPersistenceAdapter Error」

自分の場合は、DynamoDBへのアクセス権限がなかったことが原因でした。
cloud9はAWSの各種サービスへのアクセス権を持ったユーザーで実行していたため、DynamoDBを参照した際にもエラーにならなかったのだと思います。
上記2ではLambdaに付与されているロールで実行されるため、アクセス権エラーが再現するのでしょうね。

2019.6.1 追記

2019年4月にCloud9が東京リージョンに対応したとのニュースがありましたね。
AWS Cloud9 が東京リージョンに対応しました

3
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2