반응형
AWS Lambda Code - firehose peer
# Python 3.8
import base64
import json
import datetime
print('Loading function')
def lambda_handler(event, context):
output = []
for record in event['records']:
print("recordId: " + record['recordId'])
payload = base64.b64decode(record['data']).decode('utf-8')
# JSON(payload) -> Dict(payload_dict)
payload_dict = json.loads(payload)
data_dict = {}
print("payload_dict: ",payload_dict)
if " UTC " in payload_dict['log']:
data_dict['from'] = "peer"
else:
data_dict['from'] = "other"
data_dict['log'] = payload_dict['log']
data_dict['stream'] = payload_dict['stream']
data_dict['time'] = payload_dict['time'].split(".")[0]+"+0000"
data_dict['instanceName'] = payload_dict['hostname']
data_dict['instanceId'] = payload_dict['instance_id']
data_dict['containerId'] = payload_dict['log_path'].split("/")[4]
# Dict(data_dict) -> JSON(payload)
data_json = json.dumps(data_dict)
print("data_dict: ",data_dict)
output_record = {
'recordId': record['recordId'],
'result': 'Ok',
'data': base64.b64encode(data_json.encode('utf-8')).decode('utf-8')
}
output.append(output_record)
print('Successfully processed {} records.'.format(len(event['records'])))
return {'records': output}
by mkdir-chandler
728x90
반응형
'Ops > AWS' 카테고리의 다른 글
AWS Lambda to Slack - process 요약 (이론) (0) | 2023.12.03 |
---|---|
AWS Lambda Code - infra noti (1) | 2023.12.02 |
AWS Lambda Code - 403 rewrite request (0) | 2023.11.30 |
AWS Lambda Code - 특정 region 요청 redirect (0) | 2023.11.29 |
AWS Lambda Code - 이미지 리사이징 (feat. cloudfront) (0) | 2023.11.28 |