console.log('starting function')
exports.handle = function(event, context, callback){
var firebase = require('firebase');
var admin = require("firebase-admin");
var Mixpanel = require('mixpanel');
// initialize mixpanel client configured to communicate over https
var mixpanel = Mixpanel.init('********************', {
protocol: 'https'
});
var serviceAccount = require("productionKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "********************"
});
function getTotalUsers(){
admin.database().ref("users").once('value').then(function(snapshot) {
console.log("Total Users:", snapshot.numChildren());
mixpanel.track('Users Calculated', {
distinct_id: '9999',
"Total Users": snapshot.numChildren()
});
callback(null, snapshot.numChildren());
});
}
getTotalUsers();
}
我的問題是我如何才能在AWS Lambda中正常運行並運行?我在前兩行添加了回調函數,因爲我認爲這是AWS所必需的。我對此很陌生,但是如果沒有這些元素,我的腳本就可以正常工作。我壓縮組件,包括模塊和package.json以及firebase生產密鑰,並將其作爲Lambda函數上傳,當我測試它時,無論我將最大超時時間更改爲何時,它都會超時。如何將node.js文件上載到AWS Lambda併成功運行?
我在做什麼錯?我寫了大量node.js腳本,這些腳本與這些腳本不太相似,我很想知道如何讓它們在AWS Lambda(預定)上運行。非常感謝你的幫助!
幾件事情來檢查,就是你要連接到訪問的數據庫?默認情況下,AWS Lambda不會在VPC中運行,這可能是其超時的一個原因。 –
@Yogesh_D DB是可訪問的,我在本地運行node.js腳本時沒有前兩行(對於aws)和回調,它工作得很好。這就是爲什麼我會掛斷電話,腳本像魅力一樣運行,直到我嘗試將其上傳到Lambda。 – ryangineer
我的意思是數據庫公衆? (如果其託管在AWS中) –