ハードコードされたデータ項目をDynamoDBに配置しようとしています。このアップデートを実行するためにAWS SDKオブジェクトを使用しています。そして、以下のコードでは、すべてのデバッグ「はconsole.log」が印刷されつつあるが、最終的に、それはタスクがDynamoDBのに更新なしで3.00秒3.00秒後にタスクがタイムアウトしました - nodeJSを使用したLambdaアプリケーション
後にタイムアウトし印刷し
function updatedb(intent, session, callback) {
let country;
const repromptText = null;
const sessionAttributes = {};
let shouldEndSession = false;
console.log("In the function");
const AWS = require("aws-sdk");
const docClient = new AWS.DynamoDB.DocumentClient({ region: 'eu-west-1' });
var params = {
TableName: "Location",
Item: {
"LocationID": { "S": "11" },
"Country": { "S": "10" },
"Description": { "S": "10" },
"Name": { "S": "10" }
}
};
console.log("Param loaded & executing the DocClient Put");
docClient.put(params, function (err, data) {
if (err) {
speechOutput = 'Update failed';
console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2));
callback(sessionAttributes,
buildSpeechletResponse(intent.name, speechOutput, repromptText, shouldEndSession));
} else {
console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2));
speechOutput = 'Update successful';
callback(sessionAttributes,
buildSpeechletResponse(intent.name, speechOutput, repromptText, shouldEndSession));
}
});
}
次の項目がすでにありますDynamoDBのこのラムダ関数UE-西-1である(アイルランド) 3)両)DynamoDBの 2の「場所」という名前のテーブルがあります)
1を確認し、このラムダ関数のために割り当てられた役割は、すべての操作を行うことができますこのテーブルに?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1510603004000",
"Effect": "Allow",
"Action": [
"dynamodb:*"
],
"Resource": [
"arn:aws:dynamodb:eu-west-1:752546663632:table/Location"
]
}
]
}
どのように私のラムダ関数は、テーブルだけで地域との「場所」を見つけない以下のポリシーの詳細を参照してください - コード等、エンドポイントを持っているように見えないのですか? - ちょうどチュートリアルに基づいて開発されました。
私は行方不明ですか?
お手伝いできますか?
ラムダ関数にタイムアウトが設定されていますか? –
いいえマット - デフォルトタイムアウトは3秒だと思います – mkanywhere
CLIを使用してアイテムを置くことはできますか?あなたはそれを試しましたか? –