0
我使用AWS-SDK爲下面的主題發佈消息代碼:延遲在AWS上使用的λ話題上發佈消息AWS-SDK iotData.publish
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
AWS.config.credentials = {
accessKeyId: 'myaccesskeyid',
secretAccessKey: 'mysecretaccesskey'
}
function LEDOnIntent() {
this.iotdata = new AWS.IotData({
endpoint: 'XXXXXXXXX.iot.us-east-1.amazonaws.com'
});
}
LEDOnIntent.prototype.publishMessage = function() {
console.log('>publishMessage');
var params = {
topic: 'test_topic',
/* required */
payload: new Buffer('{action : "LED on"}') || 'STRING_VALUE',
qos: 1
};
this.iotdata.publish(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log("Message published : " + data); // successful response
}
});
}
它工作在當地的單元測試正常,但當我在AWS lambda上部署這些代碼時,我的行爲非常不平衡。對於前幾個請求,它不會發布消息,那麼當我不斷測試它時它會正常工作。當我在休息一段時間後再測試時,它會再次停止爲某些初始請求工作。
它是不工作的時候並檢查LAMBDA日誌中CloudWatch的? –
是的。它調用了lambda,但延遲發佈消息。因此,當我點擊請求時,我會在日誌中看到「> publishMessage」,但不會顯示「Message published:...」 – Nidhish
在休息後運行時有延遲的原因,我在答案中添加了這個延遲。有必要檢查初始Lambda設置需要多長時間。你可以做什麼是做初始發佈,留下幾秒鐘,然後嘗試後續請求。只是爲了確定拖延會有多久 –