Aws Lambda

https://eu-west-1.console.aws.amazon.com/lambda Cette fonctionnalité fournie par Amazon permet d’exécuter du code sans serveur. Exemple avec Node-JS : Le code doit comporter à minima un fichier index.js qui contient un événement basic
console.log(‘Loading function’); exports.handler = async (event, context) => { console.log(‘Received event:’, JSON.stringify(event, null, 2)); console.log(‘value1 =’, event.key1); console.log(‘value2 =’, event.key2); console.log(‘value3 =’, event.key3); //throw new Error(‘Something went wrong’); return event.key1; // Echo back the first key value };
Si on souhaite ajouter un package NPM (exemple https://www.npmjs.com/package/amazon-date-parser) il faut télécharger sur GIT le package (https://github.com/niklongstone/amazon-date-parser), exporter la fonction Lambda (box « Action », choisissez  » Exporter la fonction ») pour créer un fichier Zip, ouvrir le ficher Zip, ajouter le répertoire du package Lambda, rezippez, créez une nouvelle fonction lambda puis dans la combo « Modifier le code en ligne » sélectionnez « Chargez un fichier en ligne ».
var AmazonDateParser = require(‘amazon-date-parser-master’); var date = new AmazonDateParser(‘2018-W48’); exports.handler = async (event, context) => { console.log(‘Val Date –>’,date); console.log(‘Received event:’, JSON.stringify(event, null, 2)); console.log(‘value2 =’, event.key2); return event.key1; // Echo back the first key value };
Affiche la date reçue d’un slot Alexa Skill de date (cf. https://medium.com/@niklongstone/alexa-amazon-date-and-js-5c8e819913b2) Fonction pour lire le résultat d’un appel à une fonction HTTPS :
function httpGet(query, callback) {
	https.get("https://url.com/" + encodeURI(query), (resp) => {
		let data = "";
		//-- A chunk of data has been recieved.
		resp.on("data", (chunk) => {
			data += chunk;
		});
		//-- The whole response has been received. Print out the result.
		resp.on("end", () => {
			//console.log(JSON.parse(data).mainText);
			callback(JSON.parse(data).mainText);
		});
	}).on(" error ", (err) => {
		callback("Error:  " + err.message);
	});
}
L’appel de la fonction lors d’un intent :
'<<Nom Intent>>': function () {
	speechOutput = "";
	var query = "<<comande>>.php?xx=yy"; //-- Exemple
	httpGet(query, (theResult) => {
		//console.log("sent     : " + query);
		//console.log("received : " + theResult);
		speechOutput = theResult;
		this.emit(":ask", speechOutput, speechOutput);
	});
},
Ne pas oublier de placer au début du script :
const https = require("https");
Cas d’un intent avec SLOT :
'<<Intent>>': function () {
	speechOutput = '';
	let sSlot = resolveCanonical(this.event.request.intent.slots.xxx);
	var query = "zzz.php?nom=" + xxx;
	//console.log("sent---->    : " + query);
	httpGet(query, (theResult) => {
		console.log("sent     : " + query);
		console.log("received : " + theResult);
		const theFact = theResult;
		speechOutput = theFact;
		this.emit(':ask', speechOutput, "Désirez-vous d'autre renseignemts ou quitter ?");
	});
},
Pour tester la fonction Lambda :
{
	"session": {
		"new": false,
		"sessionId": "amzn1.echo-api.session.xxxx", //--> [unique-value-here] exemple copiez User Account
		"attributes": {},
		"user": {
			"userId": "amzn1.ask.account.xxxx" //--> https://console.aws.amazon.com/billing/home?#/account
		},
		"application": {
			"applicationId": "amzn1.ask.skill.xxxxx" //--> Your Skill ID : https://developer.amazon.com/alexa/console/ask/build/custom
		}
	},
	"version": "1.0",
	"request": {
		"locale": "fr-FR",
		"timestamp": "2016-10-27T21:06:28Z", //--> Exemple
		"type": "IntentRequest",
		"requestId": "amzn1.echo-api.request.xxxx", //--> Pour test valeur unique exemple 123456789
		"intent": {
      "slots": {
        "Color": {
          "name": "Color",
          "value": "blue"
        }
      },
      "name": "MyColorIsIntent"
    }
	},
	"context": {
		"AudioPlayer": {
			"playerActivity": "IDLE"
		},
		"System": {
			"device": {
				"supportedInterfaces": {
					"AudioPlayer": {}
				}
			},
			"application": {
				"applicationId": "amzn1.ask.skill.xxxx" //--> Your Skill ID : https://developer.amazon.com/alexa/console/ask/build/custom
			},
			"user": {
				"userId": "amzn1.ask.account.xxx" //--> https://console.aws.amazon.com/billing/home?#/account
			}
		}
	}
}
  cccc
Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :