lambda 는 블루프린트를 사용하여 다음과 같은 node JS 코드로 구성되어있다.
const zlib = require('zlib');
exports.handler = async (event, context) => {
const payload = Buffer.from(event.awslogs.data, 'base64');
const parsed = JSON.parse(zlib.gunzipSync(payload).toString('utf8'));
console.log('Decoded payload:', JSON.stringify(parsed));
return `Successfully processed ${parsed.logEvents.length} log events.`;
};
코드를 보아하니 log를 받아서 JSON으로 바꾼다.
이것을 활용하여 충분히 C 애플리케이션으로 전달할 수 있으리라 생각한다.
테스트로그를 찍어보니 다음과 같이 나온다.
2022-07-13T14:55:07.015Z 822f2f02-2dd1-4b64-8648-f78f8e3572a3 INFO Decoded payload: {
"messageType": "DATA_MESSAGE",
"owner": "123456789123",
"logGroup": "testLogGroup",
"logStream": "testLogStream",
"subscriptionFilters": [
"testFilter"
],
"logEvents": [
{
"id": "eventId1",
"timestamp": 1440442987000,
"message": "[ERROR] First test message"
},
{
"id": "eventId2",
"timestamp": 1440442987001,
"message": "[ERROR] Second test message"
}
]
}