Monday, 24 April 2017

How do I get Alexa Lamdba not to throw Type Error?

Problem Shaping

Using 'alexa-sdk' node library to run AWS lambda app code.

const Alexa = require('alexa-sdk');
const handlers = { /* ... */ };

exports.handler = function(event, context) {
  event = returnDefaultEvent(event);
  const alexa = Alexa.handler(event, context);
  alexa.registerHandlers(handlers);
  alexa.execute();
};

This code used to work just fine. However, I uploaded a new version of code, and suddenly I get Type errors (which do exist in JS).

"scripts": {
  "zip": "zip -r function.zip package.json *.js node_modules && mkdir -p ../dist && mv function.zip ../dist"
}

You can verify correct zipping by running zipinfo ../dist/${lambdaName} ( replacing lambdaName with my lambda's function name).

The error comes from when I test this on Alexa Lambda, with a default test file.

Error dump:

TypeError: Cannot read property 'request' of undefined
at AlexaRequestEmitter.ValidateRequest (/var/task/node_modules/alexa-sdk/lib/alexa.js:135:36)
at AlexaRequestEmitter.HandleLambdaEvent (/var/task/node_modules/alexa-sdk/lib/alexa.js:117:25)
at AlexaRequestEmitter.value (/var/task/node_modules/alexa-sdk/lib/alexa.js:92:31)
at exports.handler (/var/task/AgrihackGardenFn.js:78:9)

What is going on?



via Andrew Allbright

No comments:

Post a Comment