J'essaye de tester la fonctionnalité CRUD sur une fonction aws lambda en utilisant le Framework Serverless.Erreur de lancement de la fonction lambda sans serveur lors de la tentative d'insertion de données dans dynamoDB Tableau
est la commande Ici, je suis en cours d'exécution:
sudo serverless invoke local -f createArticle -p articles/event.json
Lorsque je tente de créer un enregistrement d'une erreur est renvoyée. Voici l'erreur dans la console:
Syntax Error -------------------------------------------
Unexpected token u in JSON at position 0
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 6.10.3
Serverless Version: 1.13.1
Maintenant j'ai allumé mon javascript et validé mon fichier event.json.
Voici mon javascript:
'use strict';
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();
const uuid = require('uuid');
module.exports.handler = (event, context, callback) => {
const data = JSON.parse(event.body);
if (data.text && typeof data.text !== 'string') {
console.log('Validation Failed');
callback(new Error('Body did not contain a text property.'));
return;
}
const params = {
TableName: 'BlogTable',
Item: {
article_id: "1",
text: data.text
}
};
const putCallback = (error, result) => {
if (error) {
console.log(error);
callback(new Error('Could not save record.'));
return;
}
//console.log(result);
const response = {
statusCode: 200,
body: JSON.stringify(result.Item)
};
callback(null, response);
}
dynamo.put(params, putCallback);
};
Voici mon fichier event.json
:
{"text":"Hello World"}
Pourquoi l'erreur se faire jeter? Et comment puis-je définir cette variable d'environnement que j'ai essayé dans mon fichier serverless.yml
mais je n'ai pas eu de sortie.
Pourquoi les 'body' doivent avoir une propriété 'text'? Y a-t-il un moyen de contourner cela? –