2016-06-08 5 views
6

node.js를 사용하여 람다 함수를 만들려고했습니다. w 코드를 C 코드로 작성하고 node-gyp을 사용하여 노드 라이브러리로 변환합니다. 람다 기능이 완벽하게 작동합니다. node.js console.log 문만 인쇄합니다.Printf 문이 람다에서 작동하지 않습니다

이이 내 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 인쇄이없는 내가 람다 테스트 콘솔에서 다음과 같은 출력을 가지고 내 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 코드에서 printf 문을 인쇄해야합니다. 어떤 생각이라도?

+0

당신이'FFLUSH (표준 출력)에 노력했다 '당신의 printf 후? – Magisch

+0

시도. 여전히 작동하지 않습니다. 질문이 업데이트되었습니다. –

+0

'sayHello' 함수를 내 보낸 C 코드를 게시 할 수 있습니까? 도움을 주신 덕분에 – russtone

답변

4

이 코드는 작동합니다. fflush (stdout)는 인쇄를위한 enogh입니다.

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

하지만 aws lamda는 웹 콘솔에서 직접 라이브러리 인쇄를 인쇄 할 수 없습니다. 전체 로그를 보려면 awslog를 설치해야합니다.

  1. 설치 awslogs

    sudo는 핍

    는 awslogs Waching 로그에 대한

  2. 를 설치합니다.

    awslogs GET/AWS/람다/lambdaFunctionName --start = "3H"

+0

에게 감사드립니다. –

관련 문제