Sto cercando di scrivere sullo shadow di aws il contenuto di una pagina web utilizzando le api del servizio. Riesco a scrivere sul cloudwatch ma quando cerco di scrivere anche sulla variabile, nel mio caso UD2, non riesco. Riuscite ad aiutarmi? Riporto, per comodità, il mio codice. Grazie in anticipo.
Eleonora
Eleonora
Codice:
console.log('Loading function');
var aws = require('aws-sdk');
var endpoint = '';
var thingName = '';
exports.handler = function(event, context) {
var https = require("https");
var querystring = "https://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&APPID=1234";
https.get(encodeURI(querystring), function(res) {
console.log("Got response: " + res.statusCode);
res.setEncoding('utf8');
res.on('data', function(d) {
//testtest = d;
console.log('Body: ' + d);
return d;
});
context.succeed(res.statusCode)
return res;
}).on('error', function(e) {
console.log("Got error: " + e.message);
context.fail(e.message);
});
var iotdata = new aws.IotData( { endpoint: endpoint } );
var params = { thingName: thingName };
iotdata.getThingShadow(params, function (err, data) {
if (!err){
var payload = JSON.parse(data.payload);
var currentUD1 = payload.state.desired.UD1;
var currentUD2 = payload.state.desired.UD2;
console.log("Current state : " + currentUD2);
var desiredUD2;
if(currentUD1 == 1) {
desiredUD2 = https.get.res.on.d;
console.log(desiredUD2);
}
else {
desiredUD2=https.get.res.on.d;
console.log(desiredUD2);
}
var desiredState = {
state: {
desired: {
UD2:https.get.res.on.d
},
reported: {
UD2:https.get.res.on.d
}
}
};
var params = {
thingName: thingName,
payload: JSON.stringify(desiredState)
};
iotdata.updateThingShadow(params, function (err, data) {
if (!err) {
context.succeed();
} else {
context.fail(err);
}
});
} else {
context.fail(err);
}
});
};