2016-03-21 13 views
12

Ich habe diese einfache Instanzen Funktion beschreiben, die ich in NodeJS über AWS Lambda zu laufen bin versucht:Aws Lambda beschreiben Instanzen Auszeit

var AWS = require('aws-sdk'); 
AWS.config.region = 'us-east-1'; 

exports.handler = function(event, context) { 
    console.log("\n\nLoading handler\n\n"); 
    var ec2 = new AWS.EC2(); 
    ec2.describeInstances(function(err, data) { 
     console.log("\nIn describe instances:\n"); 
     if (err) { 
     console.log(err, err.stack); 
     context.done(null, 'Function Finished from error!'); // an error occurred 
     }else { 
     console.log("\n\n" + data + "\n\n"); 
     context.done(null, 'Function Finished with data!'); // successful response 
     } 
    }); 
}; 

Das gefällt mir nicht zurückgeben Fehler der einzige Ausgang in Cloudwatch ist dies :

2016-03-21T17:01:59.085Z xxxxxxx-xx.... Task timed out after 3.00 seconds 

Wer hat eine Idee, was könnte das Problem sein?

+1

Haben Sie den VPC-Zugriff für Ihre Lambda-Funktion aktiviert? –

+0

@MarkB ja Ich habe VPC, Subnetze und Sicherheitsgruppen ausgewählt – Tomas

+0

Wenn Sie die Zeitüberschreitung erhöhen, ist es immer noch Timeout? –

Antwort

0

prüfen dies: https://medium.com/@philippholly/aws-lambda-enable-outgoing-internet-access-within-vpc-8dd250e11e12#.2sdn5oyd1

Wenn Sie in VPC sind, können Sie keinen Internetzugang mehr!

Sie sollten NAT konfigurieren, um den ausgehenden Internetzugang in Lambda zu aktivieren.

+2

Bitte geben Sie keine Link-Only-Antworten. Sie sollten immer den (minimal) notwendigen Schritt für eine Lösung in den Text Ihrer Antwort einfügen. Link kann runtergehen und dann wird Ihre Antwort nutzlos. Zitieren Sie einfach die erforderlichen Schritte und geben Sie an, wo der Kredit fällig ist. –

2

Stellen die Ausführung Rolle EC2 Berechtigungen sicher hat und versuchen Sie es mit: Timeout (Lambda

context.fail() oder context.succeed()

vs

context.done()

+0

Gibt es eine Quelle, die mehr über diesen Ansatz erklären kann? – Doug

9

ich auch gleiche Problem konfrontiert .. Ich erhöht - -> Konfiguration -> Erweiterte Einstellungen) von 3 Sekunden bis 5 Sekunden und es hat gut funktioniert.

+0

Ein anderer Ansatz besteht darin, die Speicherkonfiguration zu erhöhen und die Timeout-Zeit auf 30 Sekunden einzustellen. Führen Sie den Test dann aus, es wird angezeigt, wie lange es benötigt. –