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でこれを動作させて実行する方法です。私は最初の2行とコールバックをAWSに必要なものと仮定して追加しました。私はこれに新しいですが、私のスクリプトは、それらの要素なしでうまく動作します。モジュールやpackage.json、firebaseのプロダクションキーなどのコンポーネントを圧縮してラムダ関数としてアップロードしますが、最大タイムアウトを変更してもタイムアウトになりますが、テストするとラムダ関数としてアップロードされます。node.jsファイルをAWS Lambdaにアップロードして正常に実行するにはどうすればよいですか?
私は間違っていますか?私はあまりにも多すぎないnode.jsスクリプトをたくさん書いています。私はそれらをAWS Lambda(予定)でどのように稼働させることができるかを知りたいです。事前にあなたの助けをありがとう!
チェックするためにいくつかのこと、あなたがアクセス可能に接続されているDBのですか?デフォルトでは、AWSラムダはVPCで動作しません。タイムアウトが発生する原因の1つになる可能性があります。 –
@ Yogesh_D DBにアクセスすることができます。最初の2行(aws用)とコールバックなしでnode.jsスクリプトをローカルで実行しても問題ありません。それが私がハングアップしている理由です。ラムダにアップロードしようとするまで、スクリプトは魅力的に走ります。 – ryangineer
DBの公開はどうですか? (AWSでホストされている場合) –