私は過去2日間対処していて、まだ進捗がないようです。Alexa Lambda関数でDynamoDBを使用してください
基本的には、私はAmazonのエコードットのスキルを開発しようとしていますが、私の特定のスキルでは永続データを使用する必要があります。私はドキュメントにアクセスし、アカウントのリンクとDynamoDBに関する情報を見つけたので、簡単なリサーチプロジェクトのためにアカウントのリンクが複雑に見えたので、DynamoDBに行った。
私はラムダ関数を使用し、私はDynamoDBのテーブルの行を入れてまで、それがうまく走った:完全に並ぶ
alexa.dynamoDBTableName = 'rememberThisDB';
が働いてから私のスキルを停止し、次のメッセージを返します。
The remote endpoint could not be called, or the response it returned was invalid.
を
私は正直なところ、それに対処する方法がありません。私はAWSの概念全体を完全に新しくしているので、ラムダ関数が返す実際のエラーメッセージをどのように取得するか分からない。
私は役割を変更し、それを次のように構成与えた:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Scan",
"dynamodb:UpdateItem"
],
"Resource": "*Yes, I did put the correct ARN*"
}
]
}
をしかし、それは本当に何を変更していない、それはまだちょうど同じエラーを返しました。
問題は、DynamoDBで何もしていないことです。alexa
オブジェクトのdynamoDBTableName
プロパティを定義するだけです。それだけです。
はい、DynamoDBテーブルが存在します。
私の頭が爆破しようとしているような気がするので、どんな助けでも大歓迎です。
UPDATE:、ログを参照する方法を見つけたが、ここでは、最新のログです:Error fetching user state: ValidationException: The provided key element does not match the schema
、私は何かを照会したことがないので、それはそのエラーを与えるだろう、なぜわからない、私がやった唯一の事は、テーブル名を宣言しました。
テーブルのスキーマとは何ですか? alexa-skills-kit-sdk-for-nodejsを使用していると仮定します(テーブルには単一の 'userId'文字列HASHキーが必要です)(https://github.com/alexa/alexa-skills-kit-sdk -for-nodejs/blob/master/lib/DynamoAttributesHelper.js#L82-L99)。 – idbehold
ちょうどチェックして、私は 'id'主インデックスを持っていましたが、' userId'ではなく、それを追加してから再び動作しました。私はそれがReadmeに文書化されているのを見ませんでした。あまりにもありがとう、あなたは命の恩人です – CristianHG
こんにちはアレクサンダー、私は同じ問題があります。あなたはその解決策を見つけましたか? :) –