2016-06-08 14 views
6

Ho provato a creare una funzione lambda usando node.js. w ha scritto il codice nel codice C e lo ha convertito nella libreria dei nodi usando node-gyp. funzione lambda perfettamente funzionante. ma stampa solo le istruzioni di console.log node.js.Stampa non funzionante su lambda

Questo è il mio codice node.js

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

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

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

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

Questo è il mio codice C

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

ho ottenuto output come questo da console di prova lambda

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 di stampa manca . ho bisogno di stampare istruzioni printf nel mio codice C. se qualche idea?

+0

Hai provato a 'fflush (stdout)' dopo la vostra printf? – Magisch

+0

provato. ma ancora non funziona. domanda aggiornata –

+0

Puoi pubblicare il tuo codice C che esporta la funzione 'sayHello'? – russtone

risposta

4

Questo codice funziona. fflush (stdout) è enogh per la stampa.

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

Tuttavia, aws lamda non è in grado di stampare stampe di librerie direttamente su console Web. Abbiamo bisogno di installare awslog per il waching dei log completi.

  1. installare awslogs

    sudo pip installare awslogs

  2. per i registri Waching.

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

+0

grazie a tutti per il vostro aiuto –