From 41542bbd9d535e1936aac13e2ae9223f27aca66f Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 13 Feb 2024 13:38:43 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20lambda=5Fhandler=E3=81=AB=E4=BE=8B?= =?UTF-8?q?=E5=A4=96=E5=87=A6=E7=90=86=E8=BF=BD=E5=8A=A0=E3=80=81=E3=82=B3?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E8=BF=BD=E5=8A=A0=E3=80=81=E6=9C=AA?= =?UTF-8?q?=E5=8F=97=E9=A0=98=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E9=96=A2?= =?UTF-8?q?=E6=95=B0=E5=90=8D=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../encise-data-unreceive-check.py | 61 +++++++++++-------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py b/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py index 4e782b03..dc6085cf 100644 --- a/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py +++ b/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py @@ -129,8 +129,16 @@ def make_failure_item_on_error(message_id: str) -> dict[str, str]: return {"itemIdentifier": message_id} -def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, str]], list[str]]: +def encise_data_unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, str]], list[str]]: + """Enciseデータ未受領チェック + Args: + records (list): SQS Eventのレコードリスト + execute_month (str): 処理起動年月 + + Returns: + tuple[list[dict[str, str]], list[str]]: 失敗メッセージIdのリスト, 成功メッセージIdのリスト + """ batch_item_failures = [] batch_item_success = [] @@ -146,7 +154,7 @@ def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, s logger.info(f'受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id}') continue except Exception as e: - logger.error(f"E-02-01 メッセージ重複チェック処理に失敗しました エラー内容:{e}") + logger.exception(f"E-02-01 メッセージ重複チェック処理に失敗しました エラー内容:{e}") batch_item_failures.append(make_failure_item_on_error(message_id)) continue @@ -166,7 +174,7 @@ def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, s ) logger.info('I-03-02 受領チェック対象ファイルリストを読み込みました') except Exception as e: - logger.error(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e}") + logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e}") batch_item_failures.append(make_failure_item_on_error(message_id)) continue @@ -241,7 +249,7 @@ def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, s mail_title_without_line_break = mail_title.splitlines()[0] logger.info('I-05-04 通知メール(タイトル)テンプレートファイルを読み込みました') except Exception as e: - logger.error(f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') + logger.exception(f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') batch_item_failures.append(make_failure_item_on_error(message_id)) continue @@ -259,7 +267,7 @@ def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, s mail_body = substitute_mail_template(mail_body_template, receive_timing, mail_message) logger.info('I-05-06 通知メール(本文)テンプレートファイルを読み込みました') except Exception as e: - logger.error(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') + logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') batch_item_failures.append(make_failure_item_on_error(message_id)) continue @@ -274,7 +282,7 @@ def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, s batch_item_success.append(message_id) except Exception as e: - logger.error(f'E-99 想定外のエラーが発生しました エラー内容:{e}') + logger.exception(f'E-99 想定外のエラーが発生しました エラー内容:{e}') batch_item_failures.append(make_failure_item_on_error(message_id)) continue @@ -282,24 +290,29 @@ def unreceive_check(records: list, execute_month: str) -> tuple[list[dict[str, s def lambda_handler(event, context): - # ① 処理開始ログを出力する - logger.info('I-01-01 処理開始 Enciseデータ受領チェック処理') - # 処理稼働年月を取得しメモリに保持する - execute_date_today = datetime.date.today() - execute_month = execute_date_today.strftime('%Y/%m') - logger.info(f'I-01-02 処理稼働月:{execute_month}') - # 処理失敗メッセージIDリストをメモリに保持する(初期値=空のリスト) - batch_item_failures = [] - # 処理成功メッセージIDリストをメモリに保持する(初期値=空のリスト) - batch_item_success = [] - # ② SQSメッセージ重複排除処理を行う - logger.info('I-02-01 メッセージ処理開始') - batch_item_failures, batch_item_success = unreceive_check(event["Records"], execute_month) - logger.info('I-06-01 すべてのメッセージの処理完了') + try: + # ① 処理開始ログを出力する + logger.info('I-01-01 処理開始 Enciseデータ受領チェック処理') + # 処理稼働年月を取得しメモリに保持する + execute_date_today = datetime.date.today() + execute_month = execute_date_today.strftime('%Y/%m') + logger.info(f'I-01-02 処理稼働月:{execute_month}') + # 処理失敗メッセージIDリストをメモリに保持する(初期値=空のリスト) + batch_item_failures = [] + # 処理成功メッセージIDリストをメモリに保持する(初期値=空のリスト) + batch_item_success = [] + # ② SQSメッセージ重複排除処理を行う + logger.info('I-02-01 メッセージ処理開始') + batch_item_failures, batch_item_success = encise_data_unreceive_check(event["Records"], execute_month) + logger.info('I-06-01 すべてのメッセージの処理完了') - # ⑦ メッセージを処理済として、以下のDynamoDBテーブルに記録する - push_success_messages_to_dynamo_db(batch_item_success) - logger.info('I-07-01 処理済みメッセージIDの記録完了') - logger.info('I-07-02 処理終了 Enciseデータ受領チェック処理') + # ⑦ メッセージを処理済として、以下のDynamoDBテーブルに記録する + push_success_messages_to_dynamo_db(batch_item_success) + logger.info('I-07-01 処理済みメッセージIDの記録完了') + logger.info('I-07-02 処理終了 Enciseデータ受領チェック処理') + + except Exception as e: + logger.exception(f'E-99 想定外のエラーが発生しました エラー内容:{e}') + raise e return batch_item_failures