From bd76231de4fabfff5e247153b693340706499eef Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Thu, 4 Jul 2024 17:27:26 +0900 Subject: [PATCH 01/12] =?UTF-8?q?=E9=80=94=E4=B8=AD=E3=82=B3=E3=83=9F?= =?UTF-8?q?=E3=83=83=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daily-data-unreceive-check.py | 343 ++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 lambda/daily-data-unreceive-check/daily-data-unreceive-check.py diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py new file mode 100644 index 00000000..1bd3194e --- /dev/null +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -0,0 +1,343 @@ +import csv +import datetime +import io +import json +import logging +import os +import re +from zoneinfo import ZoneInfo + +import boto3 +from dateutil.relativedelta import relativedelta + +# 環境変数 +CONFIG_BUCKET_NAME = os.environ["CONFIG_BUCKET_NAME"] +MBJ_NOTICE_TOPIC = os.environ["MBJ_NOTICE_TOPIC"] +PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME = os.environ["PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME"] +PROCESSED_MESSAGE_EXPIRES_PERIOD = int(os.environ["PROCESSED_MESSAGE_EXPIRES_PERIOD"]) +LOG_LEVEL = os.environ["LOG_LEVEL"] +TZ = os.environ["TZ"] + +# 定数 +ROW_COMMENT_SYMBOL = '#' +INDEX_REGEX = 0 +INDEX_DATA_NAME = 1 +INDEX_ROW_COMMENT_SYMBOL = 0 +INDEX_SPLIT_NUM = 1 +INDEX_LAST = -1 + +# メール本文に出力する不足ファイル名一覧のインデント +MAIL_INDENT = '  ' + +# AWS操作クライアント +s3_client = boto3.client('s3') +sns_client = boto3.client('sns') +dynamodb_client = boto3.client('dynamodb') + + +# logger設定 +def log_datetime_convert_tz(*arg): + """ログに出力するタイムスタンプのロケールを変更する(JST指定)""" + return datetime.datetime.now(ZoneInfo(TZ)).timetuple() + + +logger = logging.getLogger() +formatter = logging.Formatter( + '[%(levelname)s]\t%(asctime)s\t%(message)s\n', + '%Y-%m-%d %H:%M:%S' +) +formatter.converter = log_datetime_convert_tz +for handler in logger.handlers: + handler.setFormatter(formatter) + +level = logging.getLevelName(LOG_LEVEL) +if not isinstance(level, int): + level = logging.INFO +logger.setLevel(level) + + +def is_duplicate_message(message_id: str) -> bool: + """DynamoDBテーブルに処理済みのSQSメッセージIdが存在するかどうかを調査する + + Args: + message_id (str): SQSメッセージId + + Returns: + bool: 存在する場合はTrue + """ + return dynamodb_client.query( + TableName=PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME, + Select='COUNT', + KeyConditionExpression='message_id = :message_id', + ExpressionAttributeValues={ + ':message_id': {'S': message_id} + } + )["Count"] != 0 + + +def put_success_messages_to_dynamo_db(batch_success_items: list[str]) -> bool: + """処理済みのSQSメッセージIdをDynamoDBにPushする + + Args: + batch_success_items (list[str]): SQSメッセージIdのリスト + + Returns: + bool: 登録成功の場合、True + """ + + # レコードの有効期限を算出 + now = datetime.datetime.now(ZoneInfo(TZ)) + record_expiration_datetime = now + \ + datetime.timedelta(minutes=PROCESSED_MESSAGE_EXPIRES_PERIOD) + record_expiration_time = record_expiration_datetime.timestamp() + + for message_id in batch_success_items: + dynamodb_client.put_item( + TableName=PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME, + Item={ + 'message_id': {'S': message_id}, + 'record_expiration_time': {'N': f'{record_expiration_time}'} + } + ) + return True + + +def substitute_mail_template(mail_template: str, receive_timing: str, mail_msg: str) -> str: + """メールテンプレートのプレースホルダーを置き換える + + Args: + mail_template (str): 置き換え前のメールテンプレート + receive_timing (str): メールテンプレートのプレースホルダーを置き換える文言(受信タイミング) + mail_msg (str): メールテンプレートのプレースホルダーを置き換える文言(ファイル一覧) + + Returns: + str: 置き換え後のメール本文 + """ + substitute_dict = { + "receive_timing": receive_timing, + "notice_file_names": mail_msg + } + mail_str = mail_template.format_map(substitute_dict) + return mail_str + + +def make_failure_item_on_error(message_id: str) -> dict[str, str]: + """Report batch item failuresによる処理に失敗したメッセージの判別のためのレスポンスを作成する + @see + Args: + message_id (str): SQSメッセージId + + Returns: + dict[str, str]: Report batch item failuresで失敗したSQSメッセージを判別するための辞書オブジェクト + """ + return {"itemIdentifier": message_id} + + +def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[dict[str, str]], list[str]]: + """日次データ未受領チェック + + Args: + records (list): SQS Eventのレコードリスト + execute_date (str): 処理稼働年月日 + + Returns: + tuple[list[dict[str, str]], list[str]]: 失敗メッセージIdのリスト, 成功メッセージIdのリスト + """ + batch_failed_items = [] + batch_success_items = [] + + for record in records: + # メール挿入用文言を格納するためのメモリを保持する + mail_message = '' + try: + try: + # 1.SQSメッセージIDを取得する + message_id = record["messageId"] + # 2.DynamoDBテーブルからレコードを取得し、処理済みメッセージかどうかを判別する + if is_duplicate_message(message_id): + logger.info(f'I-02-02 受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id}') + continue + except Exception as e: + logger.exception(f"E-02-01 メッセージ重複チェック処理に失敗しました エラー内容:{e}") + batch_failed_items.append(make_failure_item_on_error(message_id)) + continue + + # SQSパラメータをJSONシリアライズし、Pythonの辞書オブジェクト(イベントパラメータ)を取得する。 + event_parameter = json.loads(record['body']) + + # ③ 設定ファイル[受領チェック対象ファイルリスト]を読み込む + try: + logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}') + check_target_file_list_response = s3_client.get_object( + Bucket=CONFIG_BUCKET_NAME, + Key=f'{event_parameter["check_target_file_list"]}' + ) + logger.info('I-03-02 受領チェック対象ファイルリストを読み込みました') + except Exception as e: + logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e}") + batch_failed_items.append(make_failure_item_on_error(message_id)) + continue + + # ④ 受領チェック処理を行う + receive_timing = event_parameter['receive_timing'] + logger.info(f'I-04-01 日次データ受領チェック ({event_parameter['data_source_name']}) 処理開始') + object_prefix = f'{event_parameter["check_folder_prefix"]}/{execute_date}/' + + # 1.日次データバックアップ保管バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する + logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{event_parameter['check_bucket_name']}/{object_prefix}') + receive_file_list_response = s3_client.list_objects_v2(Bucket=event_parameter['check_bucket_name'], Prefix=object_prefix) + receive_file_list = [] + for content in receive_file_list_response.get('Contents', []): + # オブジェクトのキーからファイル名を切り出してリストに追加 + obj_key = content['Key'].rsplit('/', INDEX_SPLIT_NUM) + receive_file_list.append(obj_key[INDEX_LAST]) + + # 2.I/Fファイルチェック処理 + logger.info(f'I-04-03 日次受信データ({event_parameter['data_source_name']}) 未受領チェック処理開始') + check_target_file_name_body = io.TextIOWrapper(io.BytesIO( + check_target_file_list_response["Body"].read()), encoding='utf-8') + match_count = 0 + row_count = 0 + for tsv_row in csv.reader(check_target_file_name_body, delimiter='\t'): + # 「④1.」で取得したリストが「③」で読み込んだファイル内に存在するか確認する + is_file_not_exists = True + for file_name in receive_file_list: + match_result = re.fullmatch(tsv_row[INDEX_REGEX], file_name) + # 「③」で読み込んだファイルに記載されている全てが「④1.」で取得したリストに存在した場合 + if match_result is not None: + is_file_not_exists = False + # 存在したファイルの年月部分を抜き出し、チェック対象年月(処理稼働月-1)である場合 + match_group_yyyymm = match_result.group(1) + today = datetime.datetime.now(ZoneInfo(TZ)) + minus_1_month = today + relativedelta(months=-1) + check_target_yyyymm = minus_1_month.strftime('%Y%m') + if match_group_yyyymm == check_target_yyyymm: + logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}') + match_count += 1 + else: + logger.info(f'I-04-06 I/Fファイルに不足があります ファイル名:{file_name}') + mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}(受領年月が不正:{file_name})\n' + break + if is_file_not_exists: + logger.info(f'E-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') + mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' + + row_count += 1 + + if row_count == match_count: + logger.info('I-04-05 I/Fファイルは全て受領していることを確認しました') + + # ⑤ 「①」でメモリ保持しているメール挿入用文言に出力内容が存在するか確認する + logger.info('I-05-01 メール送信処理開始') + + if len(mail_message) == 0: + logger.info( + f'I-05-09 {execute_date} {event_parameter["data_source_name"]}データI/Fファイルに不足が無いため、メール送信処理をスキップします') + batch_success_items.append(message_id) + continue + + # 1.存在した場合 + logger.info( + f'I-05-02 {execute_date} {event_parameter["data_source_name"]}データI/Fファイルに不足があるため、メール送信処理を開始します') + + try: + logger.info('I-05-03 ' +f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_title_template"]}') + mail_title_response = s3_client.get_object( + Bucket=CONFIG_BUCKET_NAME, + Key=f'{event_parameter["notice_mail_title_template"]}' + ) + mail_title_template = (mail_title_response['Body'].read().decode('utf-8')) + # 改行を取り除く + mail_title = substitute_mail_template(mail_title_template, receive_timing, mail_message) + mail_title_without_line_break = mail_title.splitlines()[0] + logger.info('I-05-04 通知メール(タイトル)テンプレートファイルを読み込みました') + except Exception as e: + logger.exception( + f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') + batch_failed_items.append( + make_failure_item_on_error(message_id)) + continue + + try: + logger.info('I-05-05 ' +f'通知メール(本文)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_body_template"]}') + mail_body_template_response = s3_client.get_object( + Bucket=CONFIG_BUCKET_NAME, + Key=f'{event_parameter["notice_mail_body_template"]}' + ) + mail_body_template = (mail_body_template_response['Body'].read().decode('utf-8')) + # メール本文内のプレースホルダーを置き換える + mail_body = substitute_mail_template(mail_body_template, receive_timing, mail_message) + logger.info('I-05-06 通知メール(本文)テンプレートファイルを読み込みました') + except Exception as e: + logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') + batch_failed_items.append(make_failure_item_on_error(message_id)) + continue + + logger.info(f'I-05-07 メール送信指示をします 送信先トピック:{MBJ_NOTICE_TOPIC}') + params = { + 'TopicArn': MBJ_NOTICE_TOPIC, + 'Subject': mail_title_without_line_break, + 'Message': mail_body + } + sns_client.publish(**params) + logger.info('I-05-08 メール送信指示をしました') + + batch_success_items.append(message_id) + except Exception as e: + logger.exception(f'E-99 想定外のエラーが発生しました エラー内容:{e}') + batch_failed_items.append(make_failure_item_on_error(message_id)) + continue + + return batch_failed_items, batch_success_items + + +def lambda_handler(event, context): + try: + # ① 処理開始ログを出力する + logger.info('I-01-01 処理開始 日次データ受領チェック処理') + # 処理稼働年月を取得しメモリに保持する + execute_date = datetime.date.today() + # 処理成功メッセージIDリストをメモリに保持する(初期値=空のリスト) + batch_success_items = [] + # 処理失敗メッセージIDリストをメモリに保持する(初期値=空のリスト) + batch_failed_items = [] + + # ② SQSメッセージ重複排除処理を行う + logger.info('I-02-01 メッセージ処理開始') + batch_failed_items, batch_success_items = daily_data_unreceive_check(event["Records"], execute_date) + logger.info('I-06-01 すべてのメッセージの処理完了') + + # ⑦ メッセージを処理済として、以下のDynamoDBテーブルに記録する + put_success_messages_to_dynamo_db(batch_success_items) + logger.info('I-07-01 処理済みメッセージIDの記録完了') + logger.info('I-07-02 処理終了 日次データ受領チェック処理') + + except Exception as e: + logger.exception(f'E-99 想定外のエラーが発生しました エラー内容:{e}') + raise e + + return batch_failed_items + + +# 動作確認用のコード +if __name__ == '__main__': + lambda_handler({ + "Records": [ + { + "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78", + "receiptHandle": "MessageReceiptHandle", + "body": "{\"data_source_name\":\"data_source_name\",\"check_bucket_name\":\"check_bucket_name\",\"check_folder_prefix\":\"check_folder_prefix\",\"check_target_file_list\":\"check_target_file_list\",\"notice_mail_title_template\":\"notice_mail_title_template\",\"notice_mail_body_template\":\"notice_mail_body_template\"\r\n}", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1523232000000", + "SenderId": "123456789012", + "ApproximateFirstReceiveTimestamp": "1523232000001" + }, + "messageAttributes": {}, + "md5OfBody": "{{{md5_of_body}}}", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-1:123456789012:MyQueue", + "awsRegion": "us-east-1" + } +] +}, {}) From 384e069fb8a6e750d1182f2d88faef47edc10433 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Tue, 16 Jul 2024 16:38:45 +0900 Subject: [PATCH 02/12] =?UTF-8?q?=E6=9C=AA=E5=8F=97=E9=A0=98=E3=83=81?= =?UTF-8?q?=E3=82=A7=E3=83=83=E3=82=AF=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daily-data-unreceive-check.py | 60 ++++++++----------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py index 1bd3194e..cca7848d 100644 --- a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -179,9 +179,9 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d continue # ④ 受領チェック処理を行う - receive_timing = event_parameter['receive_timing'] + receive_timing = execute_date.strftime('%Y/%m/%d') logger.info(f'I-04-01 日次データ受領チェック ({event_parameter['data_source_name']}) 処理開始') - object_prefix = f'{event_parameter["check_folder_prefix"]}/{execute_date}/' + object_prefix = f'{event_parameter["check_folder_prefix"]}/{receive_timing}/' # 1.日次データバックアップ保管バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{event_parameter['check_bucket_name']}/{object_prefix}') @@ -206,18 +206,8 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d # 「③」で読み込んだファイルに記載されている全てが「④1.」で取得したリストに存在した場合 if match_result is not None: is_file_not_exists = False - # 存在したファイルの年月部分を抜き出し、チェック対象年月(処理稼働月-1)である場合 - match_group_yyyymm = match_result.group(1) - today = datetime.datetime.now(ZoneInfo(TZ)) - minus_1_month = today + relativedelta(months=-1) - check_target_yyyymm = minus_1_month.strftime('%Y%m') - if match_group_yyyymm == check_target_yyyymm: - logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}') - match_count += 1 - else: - logger.info(f'I-04-06 I/Fファイルに不足があります ファイル名:{file_name}') - mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}(受領年月が不正:{file_name})\n' - break + logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}') + match_count += 1 if is_file_not_exists: logger.info(f'E-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' @@ -320,24 +310,24 @@ def lambda_handler(event, context): # 動作確認用のコード -if __name__ == '__main__': - lambda_handler({ - "Records": [ - { - "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78", - "receiptHandle": "MessageReceiptHandle", - "body": "{\"data_source_name\":\"data_source_name\",\"check_bucket_name\":\"check_bucket_name\",\"check_folder_prefix\":\"check_folder_prefix\",\"check_target_file_list\":\"check_target_file_list\",\"notice_mail_title_template\":\"notice_mail_title_template\",\"notice_mail_body_template\":\"notice_mail_body_template\"\r\n}", - "attributes": { - "ApproximateReceiveCount": "1", - "SentTimestamp": "1523232000000", - "SenderId": "123456789012", - "ApproximateFirstReceiveTimestamp": "1523232000001" - }, - "messageAttributes": {}, - "md5OfBody": "{{{md5_of_body}}}", - "eventSource": "aws:sqs", - "eventSourceARN": "arn:aws:sqs:us-east-1:123456789012:MyQueue", - "awsRegion": "us-east-1" - } -] -}, {}) +# if __name__ == '__main__': +# lambda_handler({ +# "Records": [ +# { +# "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78", +# "receiptHandle": "MessageReceiptHandle", +# "body": "{\"data_source_name\":\"data_source_name\",\"check_bucket_name\":\"check_bucket_name\",\"check_folder_prefix\":\"check_folder_prefix\",\"check_target_file_list\":\"check_target_file_list\",\"notice_mail_title_template\":\"notice_mail_title_template\",\"notice_mail_body_template\":\"notice_mail_body_template\"\r\n}", +# "attributes": { +# "ApproximateReceiveCount": "1", +# "SentTimestamp": "1523232000000", +# "SenderId": "123456789012", +# "ApproximateFirstReceiveTimestamp": "1523232000001" +# }, +# "messageAttributes": {}, +# "md5OfBody": "{{{md5_of_body}}}", +# "eventSource": "aws:sqs", +# "eventSourceARN": "arn:aws:sqs:us-east-1:123456789012:MyQueue", +# "awsRegion": "us-east-1" +# } +# ] +# }, {}) From fd975d55c84022cdec0640f210f28a7e287ebc79 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 17 Jul 2024 09:23:58 +0900 Subject: [PATCH 03/12] =?UTF-8?q?=E3=83=A1=E3=83=BC=E3=83=AB=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E6=A9=9F=E8=83=BD=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daily-data-unreceive-check.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py index cca7848d..e30b0e6f 100644 --- a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -102,19 +102,17 @@ def put_success_messages_to_dynamo_db(batch_success_items: list[str]) -> bool: return True -def substitute_mail_template(mail_template: str, receive_timing: str, mail_msg: str) -> str: +def substitute_mail_template(mail_template: str, mail_msg: str) -> str: """メールテンプレートのプレースホルダーを置き換える Args: mail_template (str): 置き換え前のメールテンプレート - receive_timing (str): メールテンプレートのプレースホルダーを置き換える文言(受信タイミング) mail_msg (str): メールテンプレートのプレースホルダーを置き換える文言(ファイル一覧) Returns: str: 置き換え後のメール本文 """ substitute_dict = { - "receive_timing": receive_timing, "notice_file_names": mail_msg } mail_str = mail_template.format_map(substitute_dict) @@ -179,9 +177,9 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d continue # ④ 受領チェック処理を行う - receive_timing = execute_date.strftime('%Y/%m/%d') + receive_date = execute_date.strftime('%Y/%m/%d') logger.info(f'I-04-01 日次データ受領チェック ({event_parameter['data_source_name']}) 処理開始') - object_prefix = f'{event_parameter["check_folder_prefix"]}/{receive_timing}/' + object_prefix = f'{event_parameter["check_folder_prefix"]}/{receive_date}/' # 1.日次データバックアップ保管バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{event_parameter['check_bucket_name']}/{object_prefix}') @@ -238,8 +236,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d ) mail_title_template = (mail_title_response['Body'].read().decode('utf-8')) # 改行を取り除く - mail_title = substitute_mail_template(mail_title_template, receive_timing, mail_message) - mail_title_without_line_break = mail_title.splitlines()[0] + mail_title_without_line_break = mail_title_template.splitlines()[0] logger.info('I-05-04 通知メール(タイトル)テンプレートファイルを読み込みました') except Exception as e: logger.exception( @@ -256,7 +253,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d ) mail_body_template = (mail_body_template_response['Body'].read().decode('utf-8')) # メール本文内のプレースホルダーを置き換える - mail_body = substitute_mail_template(mail_body_template, receive_timing, mail_message) + mail_body = substitute_mail_template(mail_body_template, mail_message) logger.info('I-05-06 通知メール(本文)テンプレートファイルを読み込みました') except Exception as e: logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') From 0d93f26bbf1ea93070dd3588aade249a2530b85a Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 17 Jul 2024 09:54:08 +0900 Subject: [PATCH 04/12] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../log_unreceive_notice_mail_body.config | 9 +++++++++ .../log_unreceive_notice_mail_title.config | 1 + .../medpass_unreceive_notice_mail_body.config | 9 +++++++++ .../medpass_unreceive_notice_mail_title.config | 1 + .../hcp_web/unreceive_check_target/log_file_list.config | 1 + .../unreceive_check_target/medpass_file_list.config | 1 + 6 files changed, 22 insertions(+) create mode 100644 s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config create mode 100644 s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config create mode 100644 s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config create mode 100644 s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_title.config create mode 100644 s3/config/hcp_web/unreceive_check_target/log_file_list.config create mode 100644 s3/config/hcp_web/unreceive_check_target/medpass_file_list.config diff --git a/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config new file mode 100644 index 00000000..724c7b04 --- /dev/null +++ b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config @@ -0,0 +1,9 @@ +【MeDaCa連携エラー通知】Palantir HCPウェブアクセスログデータ未受領 + +宛先各位 + PalantirのHCPウェブアクセスログデータを受領できておりません。 + + Palantir側の送信状況のご確認をお願いいたします。 + + 尚、本メールはシステム自動送信のため、返信は出来ません。 + 本件に関する問い合わせは、HCPウェブアクセスデータ担当者にお願いいたします。 \ No newline at end of file diff --git a/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config new file mode 100644 index 00000000..a2545bc4 --- /dev/null +++ b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config @@ -0,0 +1 @@ +【MeDaCa連携エラー通知】Parantir HCPウェブアクセスログデータ未受領 \ No newline at end of file diff --git a/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config b/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config new file mode 100644 index 00000000..a626f1ba --- /dev/null +++ b/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config @@ -0,0 +1,9 @@ +【MeDaCa連携エラー通知】medパス HCPウェブアクセスユーザ情報未受領 + +宛先各位 + medパス社のHCPウェブアクセスユーザ情報を受領できておりません。 + + medパス社へ送信状況のご確認をお願いいたします。 + + 尚、本メールはシステム自動送信のため、返信は出来ません。 + 本件に関する問い合わせは、HCPウェブアクセスデータ担当者にお願いいたします。 \ No newline at end of file diff --git a/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_title.config b/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_title.config new file mode 100644 index 00000000..89f1cb28 --- /dev/null +++ b/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_title.config @@ -0,0 +1 @@ +【MeDaCa連携エラー通知】medパス HCPウェブアクセスユーザ情報未受領 \ No newline at end of file diff --git a/s3/config/hcp_web/unreceive_check_target/log_file_list.config b/s3/config/hcp_web/unreceive_check_target/log_file_list.config new file mode 100644 index 00000000..e98bbc76 --- /dev/null +++ b/s3/config/hcp_web/unreceive_check_target/log_file_list.config @@ -0,0 +1 @@ +hcpweb_accesslog_\d{4}-\d{2}-\d{2}-\d{6}\.(csv|CSV) Palantir HCPウェブアクセスログデータ diff --git a/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config b/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config new file mode 100644 index 00000000..4881eefd --- /dev/null +++ b/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config @@ -0,0 +1 @@ +hcpweb_medpass_user_\d{14}\.(CSV|csv) medパス社ユーザ情報 From b01f488b08d0233288ee8030064e07b2152884a0 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 17 Jul 2024 10:19:33 +0900 Subject: [PATCH 05/12] =?UTF-8?q?=E8=AA=A4=E5=AD=97=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=83=BB=E6=9C=AC=E6=96=87=E3=81=8B=E3=82=89=E3=82=BF=E3=82=A4?= =?UTF-8?q?=E3=83=88=E3=83=AB=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notice_mail_template/log_unreceive_notice_mail_body.config | 2 -- .../notice_mail_template/log_unreceive_notice_mail_title.config | 2 +- .../medpass_unreceive_notice_mail_body.config | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config index 724c7b04..3c36acfd 100644 --- a/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config +++ b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_body.config @@ -1,5 +1,3 @@ -【MeDaCa連携エラー通知】Palantir HCPウェブアクセスログデータ未受領 - 宛先各位  PalantirのHCPウェブアクセスログデータを受領できておりません。 diff --git a/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config index a2545bc4..c45c1e59 100644 --- a/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config +++ b/s3/config/hcp_web/notice_mail_template/log_unreceive_notice_mail_title.config @@ -1 +1 @@ -【MeDaCa連携エラー通知】Parantir HCPウェブアクセスログデータ未受領 \ No newline at end of file +【MeDaCa連携エラー通知】Palantir HCPウェブアクセスログデータ未受領 \ No newline at end of file diff --git a/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config b/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config index a626f1ba..3d5119d4 100644 --- a/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config +++ b/s3/config/hcp_web/notice_mail_template/medpass_unreceive_notice_mail_body.config @@ -1,5 +1,3 @@ -【MeDaCa連携エラー通知】medパス HCPウェブアクセスユーザ情報未受領 - 宛先各位  medパス社のHCPウェブアクセスユーザ情報を受領できておりません。 From 96a14447e68f74fc688bb32cb6a1fa327f5b2e65 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 17 Jul 2024 16:27:51 +0900 Subject: [PATCH 06/12] =?UTF-8?q?=E6=AD=A3=E8=A6=8F=E8=A1=A8=E7=8F=BE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hcp_web/unreceive_check_target/medpass_file_list.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config b/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config index 4881eefd..43ad09d1 100644 --- a/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config +++ b/s3/config/hcp_web/unreceive_check_target/medpass_file_list.config @@ -1 +1 @@ -hcpweb_medpass_user_\d{14}\.(CSV|csv) medパス社ユーザ情報 +hcp_web_medpass_user_mst_\d{14}\.(CSV|csv) medパス社ユーザ情報 From 84b2fbafab12acb6b09b3606d2080dba38f7de90 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Wed, 17 Jul 2024 18:13:36 +0900 Subject: [PATCH 07/12] =?UTF-8?q?=E3=83=AD=E3=82=B0=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../encise-data-unreceive-check/encise-data-unreceive-check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 389c82f9..1894096f 100644 --- a/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py +++ b/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py @@ -237,7 +237,7 @@ def encise_data_unreceive_check(records: list, execute_month: str) -> tuple[list break if is_file_not_exists: logger.info( - f'E-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') + f'I-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' row_count += 1 From 63c00f61b7d793ad61131d0fee4331f9548563a9 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Thu, 18 Jul 2024 09:54:24 +0900 Subject: [PATCH 08/12] =?UTF-8?q?Revert=20"=E3=83=AD=E3=82=B0=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E5=A4=89=E6=9B=B4"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 84b2fbafab12acb6b09b3606d2080dba38f7de90. --- .../encise-data-unreceive-check/encise-data-unreceive-check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1894096f..389c82f9 100644 --- a/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py +++ b/lambda/encise-data-unreceive-check/encise-data-unreceive-check.py @@ -237,7 +237,7 @@ def encise_data_unreceive_check(records: list, execute_month: str) -> tuple[list break if is_file_not_exists: logger.info( - f'I-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') + f'E-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' row_count += 1 From 610a0acdf18a6c3f2c3d57c45be9ea8c2abe2b12 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Thu, 18 Jul 2024 16:04:21 +0900 Subject: [PATCH 09/12] =?UTF-8?q?=E3=83=AD=E3=82=B0=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/daily-data-unreceive-check/daily-data-unreceive-check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py index e30b0e6f..5804ca8c 100644 --- a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -207,7 +207,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}') match_count += 1 if is_file_not_exists: - logger.info(f'E-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') + logger.info(f'I-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' row_count += 1 From 994c40ec55dcf6060afad2a883e64f5e5e099210 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Fri, 19 Jul 2024 14:59:19 +0900 Subject: [PATCH 10/12] =?UTF-8?q?=E4=BB=95=E6=A7=98=E3=81=AB=E5=90=88?= =?UTF-8?q?=E3=82=8F=E3=81=9B=E3=81=9F=E9=80=9A=E7=9F=A5=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daily-data-unreceive-check.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py index 5804ca8c..1cf5a446 100644 --- a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -153,7 +153,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d message_id = record["messageId"] # 2.DynamoDBテーブルからレコードを取得し、処理済みメッセージかどうかを判別する if is_duplicate_message(message_id): - logger.info(f'I-02-02 受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id}') + logger.info(f'I-02-02 受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id} バケットディレクトリ: {event_parameter["check_folder_prefix"]}')# TODO ADD BUCKET DIRECTORY continue except Exception as e: logger.exception(f"E-02-01 メッセージ重複チェック処理に失敗しました エラー内容:{e}") @@ -162,22 +162,22 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d # SQSパラメータをJSONシリアライズし、Pythonの辞書オブジェクト(イベントパラメータ)を取得する。 event_parameter = json.loads(record['body']) + receive_date = execute_date.strftime('%Y/%m/%d') # ③ 設定ファイル[受領チェック対象ファイルリスト]を読み込む try: - logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}') + logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}/{receive_date}/') check_target_file_list_response = s3_client.get_object( Bucket=CONFIG_BUCKET_NAME, Key=f'{event_parameter["check_target_file_list"]}' ) logger.info('I-03-02 受領チェック対象ファイルリストを読み込みました') except Exception as e: - logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e}") + logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e} ファイル名:{event_parameter['check_target_file_list']}") batch_failed_items.append(make_failure_item_on_error(message_id)) continue # ④ 受領チェック処理を行う - receive_date = execute_date.strftime('%Y/%m/%d') logger.info(f'I-04-01 日次データ受領チェック ({event_parameter['data_source_name']}) 処理開始') object_prefix = f'{event_parameter["check_folder_prefix"]}/{receive_date}/' @@ -207,7 +207,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}') match_count += 1 if is_file_not_exists: - logger.info(f'I-04-06 月次I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') + logger.info(f'I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' row_count += 1 @@ -225,8 +225,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d continue # 1.存在した場合 - logger.info( - f'I-05-02 {execute_date} {event_parameter["data_source_name"]}データI/Fファイルに不足があるため、メール送信処理を開始します') + logger.info(f'I-05-02 {execute_date} {event_parameter["data_source_name"]} データI/Fファイルに不足があるため、メール送信処理を開始します') try: logger.info('I-05-03 ' +f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_title_template"]}') @@ -240,7 +239,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d logger.info('I-05-04 通知メール(タイトル)テンプレートファイルを読み込みました') except Exception as e: logger.exception( - f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') + f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e} ファイル名:{event_parameter["notice_mail_title_template"]}') batch_failed_items.append( make_failure_item_on_error(message_id)) continue @@ -256,7 +255,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d mail_body = substitute_mail_template(mail_body_template, mail_message) logger.info('I-05-06 通知メール(本文)テンプレートファイルを読み込みました') except Exception as e: - logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e}') + logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e} ファイル名:{event_parameter["notice_mail_body_template"]}') batch_failed_items.append(make_failure_item_on_error(message_id)) continue From 5d55d438edba852517bc29484036de1e7477b7c2 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Fri, 19 Jul 2024 15:30:56 +0900 Subject: [PATCH 11/12] =?UTF-8?q?=E9=87=8D=E8=A4=87=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E3=81=AB=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=83=AC=E3=82=AF=E3=83=88=E3=83=AA=E8=A1=A8=E7=A4=BA=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daily-data-unreceive-check.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py index 1cf5a446..0266bc75 100644 --- a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -148,22 +148,22 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d # メール挿入用文言を格納するためのメモリを保持する mail_message = '' try: + # SQSパラメータをJSONシリアライズし、Pythonの辞書オブジェクト(イベントパラメータ)を取得する。 + event_parameter = json.loads(record['body']) + receive_date = execute_date.strftime('%Y/%m/%d') + try: # 1.SQSメッセージIDを取得する message_id = record["messageId"] # 2.DynamoDBテーブルからレコードを取得し、処理済みメッセージかどうかを判別する if is_duplicate_message(message_id): - logger.info(f'I-02-02 受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id} バケットディレクトリ: {event_parameter["check_folder_prefix"]}')# TODO ADD BUCKET DIRECTORY + logger.info(f'I-02-02 受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id} バケットディレクトリ: {event_parameter["check_bucket_name"]}/{event_parameter["check_folder_prefix"]}/{receive_date}/') continue except Exception as e: logger.exception(f"E-02-01 メッセージ重複チェック処理に失敗しました エラー内容:{e}") batch_failed_items.append(make_failure_item_on_error(message_id)) continue - # SQSパラメータをJSONシリアライズし、Pythonの辞書オブジェクト(イベントパラメータ)を取得する。 - event_parameter = json.loads(record['body']) - receive_date = execute_date.strftime('%Y/%m/%d') - # ③ 設定ファイル[受領チェック対象ファイルリスト]を読み込む try: logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}/{receive_date}/') @@ -207,7 +207,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}') match_count += 1 if is_file_not_exists: - logger.info(f'I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') + logger.info(f'I-04-06 I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}') mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n' row_count += 1 From 9388ce0ee776fdc0707eb49aba686c660b19c948 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Fri, 19 Jul 2024 16:30:51 +0900 Subject: [PATCH 12/12] =?UTF-8?q?=E3=83=AD=E3=82=B0=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../daily-data-unreceive-check.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py index 0266bc75..e74550c7 100644 --- a/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py +++ b/lambda/daily-data-unreceive-check/daily-data-unreceive-check.py @@ -166,14 +166,14 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d # ③ 設定ファイル[受領チェック対象ファイルリスト]を読み込む try: - logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}/{receive_date}/') + logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}') check_target_file_list_response = s3_client.get_object( Bucket=CONFIG_BUCKET_NAME, Key=f'{event_parameter["check_target_file_list"]}' ) logger.info('I-03-02 受領チェック対象ファイルリストを読み込みました') except Exception as e: - logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e} ファイル名:{event_parameter['check_target_file_list']}") + logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e} 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}") batch_failed_items.append(make_failure_item_on_error(message_id)) continue @@ -239,7 +239,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d logger.info('I-05-04 通知メール(タイトル)テンプレートファイルを読み込みました') except Exception as e: logger.exception( - f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e} ファイル名:{event_parameter["notice_mail_title_template"]}') + f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e} 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_title_template"]}') batch_failed_items.append( make_failure_item_on_error(message_id)) continue @@ -255,7 +255,7 @@ def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[d mail_body = substitute_mail_template(mail_body_template, mail_message) logger.info('I-05-06 通知メール(本文)テンプレートファイルを読み込みました') except Exception as e: - logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e} ファイル名:{event_parameter["notice_mail_body_template"]}') + logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e} 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_body_template"]}') batch_failed_items.append(make_failure_item_on_error(message_id)) continue