From eb9b70cbb339d3538ea82e7257588462c53dfdc8 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Tue, 14 May 2024 16:22:55 +0900 Subject: [PATCH] sap-fin-receive-check-monthly-fix --- .../sap-fin-receive-check-monthly.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lambda/sap-fin-receive-check-monthly/sap-fin-receive-check-monthly.py b/lambda/sap-fin-receive-check-monthly/sap-fin-receive-check-monthly.py index e30858c5..25058295 100644 --- a/lambda/sap-fin-receive-check-monthly/sap-fin-receive-check-monthly.py +++ b/lambda/sap-fin-receive-check-monthly/sap-fin-receive-check-monthly.py @@ -34,7 +34,6 @@ MAIL_INDENT = '  ' # 変数 s3_client = boto3.client('s3') -s3_resource = boto3.resource('s3') sns_client = boto3.client('sns') # logger設定 @@ -71,8 +70,8 @@ def lambda_handler(event, context): # 1.設定ファイル[チェック処理実施指定日ファイル]を読み込む try: logger.info(f'I-02-02 チェック処理実施指定日ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{MONTHLY_CEHCK_DAY_LIST_PATH}') - monthly_day_obj = s3_resource.Object(CONFIG_BUCKET_NAME, MONTHLY_CEHCK_DAY_LIST_PATH) - monthly_day_response = monthly_day_obj.get() + monthly_day_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=MONTHLY_CEHCK_DAY_LIST_PATH) + logger.info('I-02-03 チェック処理実施指定日ファイルを読み込みました') except Exception as e: logger.error(f'E-02-01 チェック処理実施指定日設定ファイルの読み込みに失敗しました エラー内容:{e}') @@ -104,8 +103,8 @@ def lambda_handler(event, context): # ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(月次)]を読み込む try: logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}') - receive_monthly_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_MONTHLY_FILE_NAME_LIST_PATH) - receive_monthly_file_name_response = receive_monthly_file_name_obj.get() + receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH) + logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました') except Exception as e: logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}') @@ -117,10 +116,10 @@ def lambda_handler(event, context): # 1.SAP保管用バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_month}/') object_prefix = f'{execute_month}/' - object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix) + object_list = s3_client.list_objects_v2(Bucket=CHECK_BUCKET_NAME, Prefix=object_prefix) file_list = [] - for obj in object_list: - obj_key = obj.key.rsplit('/', INDEX_SPLIT_NUM) + for obj in object_list.get('Contents', []): + obj_key = obj['Key'].rsplit('/', INDEX_SPLIT_NUM) file_list.append(obj_key[INDEX_LAST]) # 2.月次I/Fファイルチェック処理 @@ -128,7 +127,7 @@ def lambda_handler(event, context): logger.info('I-04-04 取得したオブジェクトリストと月次I/Fファイルネーム設定ファイルの突き合わせを開始します') receive_monthly_file_name_body = io.TextIOWrapper(io.BytesIO(receive_monthly_file_name_response["Body"].read()), encoding='utf-8') match_count = 0 - row_count = sum(1 for line in io.BytesIO(receive_monthly_file_name_obj.get()["Body"].read())) + row_count = sum(1 for line in io.BytesIO(s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)["Body"].read())) for row in csv.reader(receive_monthly_file_name_body, delimiter='\t'): file_exists = False for file_name in file_list: