app.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from flask import Flask, jsonify, request
  2. from flask_restful import reqparse, abort, Api, Resource
  3. from kinesis.producer import KinesisProducer
  4. import json
  5. import boto3
  6. import logging
  7. import logging.handlers
  8. import os
  9. import time
  10. server = Flask(__name__)
  11. api = Api(server)
  12. session = boto3.Session(
  13. aws_access_key_id=os.environ['ID'],
  14. aws_secret_access_key=os.environ['KEY'],
  15. region_name='ap-northeast-2')
  16. producer = KinesisProducer(stream_name=os.environ['STREAM'],boto3_session=session)
  17. logger = logging.getLogger(__name__)
  18. os.environ['TZ'] = 'Asia/Seoul'
  19. time.tzset()
  20. formatter = logging.Formatter('%(message)s') if os.environ['FORMATTER_VER']==1 else logging.Formatter('[%(asctime)s] %(message)s', "%Y-%m-%d %H:%M:%S")
  21. fileHandler = logging.FileHandler('./logs/log')
  22. fileHandler.setFormatter(formatter)
  23. logger.addHandler(fileHandler)
  24. logger.setLevel(level=logging.INFO)
  25. class LogWallpad(Resource):
  26. def post(self):
  27. request.json['site']=os.environ['SITE']
  28. logger.info(json.dumps(request.json))
  29. producer.put(json.dumps(request.json)+'\n')
  30. return request.json, 201
  31. api.add_resource(LogWallpad, '/wallpad/log')