2016-06-08 3 views
6

Я попытался создать лямбда-функцию, используя node.js. w написал код в коде C и преобразовал его в библиотеку узлов с помощью node-gyp. лямбда-функция отлично работает. но он выводит только инструкции node.js console.log.Printf Statement не работает на лямбда

Это мой node.js код

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

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

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

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

Это мой C код

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

Я получил такой вывод из тестового лямбда консоли

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 печать отсутствует , Мне нужно распечатать инструкции printf в моем коде на C. если есть какая-то идея?

+0

вы пытались 'fflush (стандартный вывод)' после Printf? – Magisch

+0

пробовал. но все еще не работает. вопрос обновлен –

+0

Можете ли вы разместить свой код C, который экспортирует функцию 'sayHello'? – russtone

ответ

4

Этот код работает. fflush (stdout) для печати.

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

Но, aws lamda не может печатать библиотеку, печатает непосредственно на веб-консоли. Нам нужно установить awslog для просмотра полных журналов.

  1. установить awslogs

    Судо пип установить awslogs

  2. бревен стиральную.

    awslogs прибудете/AWS/лямбда/lambdaFunctionName --start = "3h"

+0

спасибо всем за вашу помощь –