From f5d6e6b5252e9464fe75d3d533de3d5cfe27bba4 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Fri, 1 Jul 2022 14:57:43 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E3=83=AD=E3=82=AC=E3=83=BC=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=81=A8=E3=82=A8=E3=83=A9=E3=83=BC=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/check-view-secutiry-option/main.py | 22 ++++++++++-- .../src/error/file_not_found_exception.py | 5 +++ .../src/error/madaca_exception.py | 7 ++++ .../src/logger/logger.py | 36 +++++++++++++++++++ .../src/system_vars/constants.py | 3 ++ .../src/system_vars/environments.py | 3 ++ 6 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 lambda/check-view-secutiry-option/src/error/file_not_found_exception.py create mode 100644 lambda/check-view-secutiry-option/src/error/madaca_exception.py create mode 100644 lambda/check-view-secutiry-option/src/logger/logger.py create mode 100644 lambda/check-view-secutiry-option/src/system_vars/constants.py create mode 100644 lambda/check-view-secutiry-option/src/system_vars/environments.py diff --git a/lambda/check-view-secutiry-option/main.py b/lambda/check-view-secutiry-option/main.py index 31ce8430..0ac8513b 100644 --- a/lambda/check-view-secutiry-option/main.py +++ b/lambda/check-view-secutiry-option/main.py @@ -1,5 +1,21 @@ +""" +Viewセキュリティオプション付与チェック用Lambda関数のエントリーポイント +""" + +from src.error.file_not_found_exception import FileNotFoundException +from src.error.madaca_exception import MeDaCaException +from src.logger.logger import MeDaCaLogger + + def handler(event, context): + logger = MeDaCaLogger.get_logger() try: - print('lambda handle') - except Exception as e: - print('exception') + logger.info('lambda handle') + raise FileNotFoundException('E-02-01', 'ファイル見つかりません') + except MeDaCaException as e: + logger.exception(f'exception: {e.error_id} {e}') + + +# ローカル実行用 +if __name__ == '__main__': + handler({}, {}) diff --git a/lambda/check-view-secutiry-option/src/error/file_not_found_exception.py b/lambda/check-view-secutiry-option/src/error/file_not_found_exception.py new file mode 100644 index 00000000..f3ea4438 --- /dev/null +++ b/lambda/check-view-secutiry-option/src/error/file_not_found_exception.py @@ -0,0 +1,5 @@ +from .madaca_exception import MeDaCaException + + +class FileNotFoundException(MeDaCaException): + pass diff --git a/lambda/check-view-secutiry-option/src/error/madaca_exception.py b/lambda/check-view-secutiry-option/src/error/madaca_exception.py new file mode 100644 index 00000000..b79129ae --- /dev/null +++ b/lambda/check-view-secutiry-option/src/error/madaca_exception.py @@ -0,0 +1,7 @@ +from abc import ABCMeta + + +class MeDaCaException(Exception, metaclass=ABCMeta): + def __init__(self, error_id: str, message) -> None: + super().__init__(message) + self.error_id = error_id diff --git a/lambda/check-view-secutiry-option/src/logger/logger.py b/lambda/check-view-secutiry-option/src/logger/logger.py new file mode 100644 index 00000000..4e71d919 --- /dev/null +++ b/lambda/check-view-secutiry-option/src/logger/logger.py @@ -0,0 +1,36 @@ +import datetime +import logging +from zoneinfo import ZoneInfo + +from ..system_vars.constants import (DEFAULT_TIMEZONE, LOG_DATE_FORMAT, + LOG_FORMAT) +from ..system_vars.environments import LOG_LEVEL + + +class SingletonLogger: + # インスタンス生成 + @staticmethod + def __internal_new__() -> logging.Logger: + # logger設定 + formatter = logging.Formatter( + LOG_FORMAT, + LOG_DATE_FORMAT + ) + formatter.converter = lambda: datetime.datetime.now(ZoneInfo(DEFAULT_TIMEZONE)).timetuple() + level = logging.getLevelName(LOG_LEVEL) + + logging.basicConfig(level=level, format=LOG_FORMAT, datefmt=LOG_DATE_FORMAT) + # logger.setLevel(level) + logger = logging.getLogger() + return logger + + +class MeDaCaLogger: + __unique_instance: logging.Logger = None + + @staticmethod + def get_logger(): + # インスタンス未生成の場合、唯一のインスタンスを生成する + if not MeDaCaLogger.__unique_instance: + MeDaCaLogger.__unique_instance = SingletonLogger.__internal_new__() + return MeDaCaLogger.__unique_instance diff --git a/lambda/check-view-secutiry-option/src/system_vars/constants.py b/lambda/check-view-secutiry-option/src/system_vars/constants.py new file mode 100644 index 00000000..23f2fbc7 --- /dev/null +++ b/lambda/check-view-secutiry-option/src/system_vars/constants.py @@ -0,0 +1,3 @@ +LOG_FORMAT = '[%(levelname)s]\t%(asctime)s\t%(message)s\n' +LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S' +DEFAULT_TIMEZONE = "Asia/Tokyo" diff --git a/lambda/check-view-secutiry-option/src/system_vars/environments.py b/lambda/check-view-secutiry-option/src/system_vars/environments.py new file mode 100644 index 00000000..c1d95246 --- /dev/null +++ b/lambda/check-view-secutiry-option/src/system_vars/environments.py @@ -0,0 +1,3 @@ +import os + +LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO')