from flask import Flask, jsonify, request from flask_restful import reqparse, abort, Api, Resource from kinesis.producer import KinesisProducer import json import boto3 import logging import logging.handlers import os import time server = Flask(__name__) api = Api(server) session = boto3.Session( aws_access_key_id=os.environ['ID'], aws_secret_access_key=os.environ['KEY'], region_name='ap-northeast-2') producer = KinesisProducer(stream_name=os.environ['STREAM'],boto3_session=session) logger = logging.getLogger(__name__) os.environ['TZ'] = 'Asia/Seoul' time.tzset() formatter = logging.Formatter('%(message)s') if os.environ['FORMATTER_VER']==1 else logging.Formatter('[%(asctime)s] %(message)s', "%Y-%m-%d %H:%M:%S") fileHandler = logging.FileHandler('./logs/log') fileHandler.setFormatter(formatter) logger.addHandler(fileHandler) logger.setLevel(level=logging.INFO) class LogWallpad(Resource): def post(self): request.json['site']=os.environ['SITE'] logger.info(json.dumps(request.json)) producer.put(json.dumps(request.json)+'\n') return request.json, 201 api.add_resource(LogWallpad, '/wallpad/log')