2

次の場所にある Alexa Skills オンライン チュートリアルをダウンロードしました。

https://github.com/amzn/alexa-skills-kit-js/blob/master/samples/reindeerGames/src/index.js

次の場所にあるチュートリアルのすべての指示に従いました (と思います)。

https://developer.amazon.com/public/community/post/TxDJWS16KUPVKO/New-Alexa-Skills-Kit-Template-Build-a-Trivia-Skill-in-under-an-Hour

これは、初めての Alexa Skills 開発者向けのチュートリアルです。私の質問は、「保存してテスト」ボタンを押すと、次のエラーメッセージが表示されることです。

errorMessage": "例外: TypeError: 未定義のプロパティ 'application' を読み取れません"

上記のエラーが何を意味するのか、またはそれを取り除く方法を知っている人はいますか?

どうもありがとう。

4

1 に答える 1

5

これは、未定義の変数で application という名前のプロパティを使用しようとしていることを示す JavaScript エラーのようです。

JavaScript は、使用しているがまだ設定されていない変数に値「未定義」を割り当てます。

Lambda の問題をデバッグする方法はいくつかあります。おそらく、最も簡単なのはログを確認することです。これをする:

  1. Lambda コンソール (コードを Lambda にアップロードする場所) に移動します。
  2. [モニタリング] タブを選択します
  3. 「CloudWatch でログを表示」(右上) を選択します。

最新のログを確認し、ファイルの 1 つ (通常は index.js) で報告されたエラー、具体的には行番号を探します。これは、エラーを見つけるのに役立ちます。

タイム スタンプは GMT になるため、実際の時間とはおそらく一致しないことに注意してください。複数のエントリがある場合、これは混乱を招く可能性があります。ただし、分は一致するはずであり、正しいログ エントリを見ていることを確認するのに役立ちます。

Lambda の問題をデバッグするためのより高度で迅速な方法は、「テスト」リクエストを含め、Lambda にコードをアップロードするたびにこれを実行することです。

これを設定するには:

  1. 「サービス シミュレーター」セクションの ASK テスト ページで、定義した発話の 1 つを実行します。
  2. その下に表示されているコードを「Lambda リクエスト」セクションにコピーします。
  3. 次に、Lambda 関数の Lambda コンソールに切り替えます
  4. [アクション] ボタンの下向き矢印をクリックし、[テスト イベントの構成] を選択します。
  5. 上記でコピーしたリクエストをテキスト フィールドに貼り付けます
  6. [保存してテスト] をクリックします。

新しいコードを Lambda にアップロードするたびに、[テスト] を選択すると、保存したばかりのリクエストが実行されます。

何よりも、コンソール ログが右下隅に表示されるため、ログに切り替えて更新する必要がなくなります。

于 2016-05-07T11:58:39.077 に答える