Ich habe Probleme mit einem einfachen Alexa Skill, der einen Wert in meiner DynamoDB ändert. Ich stütze meinen Code von dem von Amazon bereitgestellten ScoreKeeper-Beispiel ab. Wenn ich den Dienst-Simulator verwende oder sogar mit meinem Echo teste, bekomme ich "Der entfernte Endpunkt konnte nicht aufgerufen werden, oder die Antwort, die zurückgegeben wurde, war ungültig."Alexa Skill DynamoDB Endpunkt konnte nicht erreicht werden
Dies ist mein Inline-Code. Ich habe sichergestellt, dass meine Lambda-Rolle Zugriff auf DynamoDB hat. Nicht sicher, was ich vermisse. Jede Hilfe wird geschätzt!
var https = require('https');
var AWS = require("aws-sdk");
exports.handler = (event, context) => {
try {
if (event.session.new) {
// New Session
console.log("NEW SESSION");
}
switch (event.request.type) {
case "LaunchRequest":
// Launch Request
console.log(`LAUNCH REQUEST`);
context.succeed(
generateResponse(
buildSpeechletResponse("Welcome to an Alexa Skill, this is running on a deployed lambda function", true),
{}
)
)
break;
case "IntentRequest":
// Intent Request
console.log(`INTENT REQUEST`);
var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
switch(event.request.intent.name) {
case "IncreaseVolume":
dynamodb.putItem({
TableName: 'VolumeTable',
Item: {
DeviceID: {
S: this._session.user.userId
},
Volume: {
S: "5"
}
}
}, function (err, data) {
if (err) {
console.log(err, err.stack);
}
});
context.succeed(
generateResponse(
buildSpeechletResponse("Volume has been increased", true),
{}
)
)
break;
default:
throw "Invalid intent"
}
break;
case "SessionEndedRequest":
// Session Ended Request
console.log(`SESSION ENDED REQUEST`)
break;
default:
context.fail(`INVALID REQUEST TYPE: ${event.request.type}`)
}
} catch(error) { context.fail(`Exception: ${error}`) }
}
// Helpers
buildSpeechletResponse = (outputText, shouldEndSession) => {
return {
outputSpeech: {
type: "PlainText",
text: outputText
},
shouldEndSession: shouldEndSession
}
}
generateResponse = (speechletResponse, sessionAttributes) => {
return {
version: "1.0",
sessionAttributes: sessionAttributes,
response: speechletResponse
}
}
haben es geschafft, dieses Problem zu lösen? –