Dies ist spät mit, aber im Falle jemand anderes sucht kann dies verursachen. Der gezippte Ordner sollte nach dem Extrahieren keinen Ordner mit den Lambda-Dateien enthalten, sondern sollte die Datei index.js und den Ordner node_modules auf der Stammebene enthalten.
Ein Arbeitsbeispiel einer Lambda-Funktion (mit neuesten glänzenden Feuerbasis Sachen * seufz *):
var firebase = require('firebase');
// Your service account details
var credentials = {
"type": "service_account",
"project_id": "project-123451234512345123",
"private_key_id": "my1private2key3id",
"private_key": "-----BEGIN PRIVATE KEY-----InsertKeyHere-----END PRIVATE KEY-----\n",
"client_email": "[email protected]",
"client_id": "1111222223333344444",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/projectname%40project-123451234512345123.iam.gserviceaccount.com"
};
firebase.initializeApp({
serviceAccount: credentials,
databaseURL: "https://project-123451234512345123.firebaseio.com"
});
exports.handler = function (event, context, callback) {
// I use some data passed in from AWS API Gateway:
if (!event.firebaseUid) {
callback('Missing param for id');
}
firebase.database().ref().child('users').child(firebaseUid).child('at').set(newTokens.access_token).then(function (data) {
console.log('Firebase data: ', data);
firebase.database().goOffline();
callback(null, 'Firebase data: ', data);
}).catch(function (error) {
callback('Database set error ' + error);
});
};
Jetzt für die Einschränkung. Ich habe erlebt, dass die Lambda-Funktion einen Timeout hat, selbst nachdem der Firebase-Callback stattgefunden hat, d. Die Set-Funktion scheint einen Listener zu erzeugen, der die Lambda-Funktion trotz Rückgabe korrekter Daten offen hält.
Update: Aufruf von firebase.database(). GoOffline() behebt das Lambda-Funktion-Timeout-Problem, das aufgetreten ist.
Die üblichen Vorsichtsmaßregeln bezüglich der Sicherheit, die nicht verifiziert werden oder angemessen sind, und die Möglichkeiten des Anhaltens von Raum und Zeit, indem Sie dies anwenden.
ich bin im Moment auf meinem lokalen Rechner arbeiten (in Java-Skript), aber meine Funktion hat sich auch am Ende festgefahren. goOffline() funktioniert in meinem Fall nicht. Wie hast du das repariert? –
Ich arbeite gerade an meinem lokalen Rechner (in Java Script), aber meine Funktion hat sich auch am Ende festgefahren. goOffline() funktioniert in meinem Fall nicht. Wie hast du das repariert? –
@ josiah-chois Antwort unten löste das Problem für mich - siehe 'context.callbackWaitsForEmptyEventLoop = false' – dsl101