2016-06-08 4 views
6

Ich habe versucht, eine Lambda-Funktion mit node.js zu erstellen. w hat Code in C-Code geschrieben und mit node-gyp in eine Knotenbibliothek konvertiert. Lambda-Funktion funktioniert einwandfrei. aber es druckt nur node.js console.log-Anweisungen.Printf Statement funktioniert nicht auf Lambda

Das ist mein node.js Code

'use strict'; 
console.log('Loading function'); 

exports.handler = (event, context, callback) => { 

var addon = require('./build/Release/testLibraryfromCcode'); 

addon.sayHello(); 
console.log("Completed"); 
} 

Das ist mein C-Code ist

int sayHello() 
{ 
    printf("Haaaaaaaaaaaaai\n"); 
    fflush(stdout); 
    return 0; 
} 

bekam ich eine Ausgabe wie diese von Lambda-Testkonsole

TART RequestId: 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Version: $LATEST 
    2016-06-08T06:21:32.779Z 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Loading function 
    2016-06-08T06:21:32.779Z 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Completed 

Haaaaai Druck fehlt . Ich muss printf Anweisungen in meinem C-Code drucken. wenn eine Idee?

+0

haben Sie versucht, Ihre printf 'fflush (stdout)' nach? – Magisch

+0

ausprobiert. aber immer noch nicht funktioniert. Frage aktualisiert –

+0

Können Sie Ihren C-Code veröffentlichen, der 'sayHello'-Funktion exportiert? – russtone

Antwort

4

Dieser Code funktioniert. fflush (stdout) steht zum Drucken bereit.

Aber aws lamda kann Bibliotheksdrucke nicht direkt auf Webkonsole drucken. Wir müssen awslogs installieren, um vollständige Protokolle zu speichern.

  1. installieren awslogs

    sudo pip awslogs installieren

  2. für Waching Protokolle.

    awslogs get/aws/lambda/lambdaFunctionName --start = "3h"

+0

danke an alle für ihre hilfe –

Verwandte Themen