From 7a21b22861e957d7a02c38baf5054ae90de68554 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 30 Jan 2023 10:33:19 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E3=83=87=E3=83=BC=E3=82=BF=E7=99=BB?= =?UTF-8?q?=E9=8C=B2=E5=87=A6=E7=90=86=20=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E5=87=A6=E7=90=86=E5=86=85=E3=81=AEresource=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=BF=E3=83=95=E3=82=A7=E3=83=BC=E3=82=B9=E3=82=92=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=82=A2=E3=83=B3=E3=83=88=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=BF=E3=83=95=E3=82=A7=E3=83=BC=E3=82=B9=E3=81=AB=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/dataimport/dataimport/error.py | 41 +++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/ecs/dataimport/dataimport/error.py b/ecs/dataimport/dataimport/error.py index c81eca65..13678d19 100644 --- a/ecs/dataimport/dataimport/error.py +++ b/ecs/dataimport/dataimport/error.py @@ -1,6 +1,7 @@ -from datetime import datetime -import boto3 import sys +from datetime import datetime + +import boto3 # 定数 LOG_LEVEL = {'i': 'Info', 'e': 'Error'} @@ -10,7 +11,6 @@ DIRECTORY_ERROR = '/error/' # クラス変数 s3_client = boto3.client('s3') -s3_resource = boto3.resource('s3') def error(bucket_name, target_data_source, target_file_name, log_info): @@ -34,8 +34,7 @@ def error(bucket_name, target_data_source, target_file_name, log_info): } error_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}' error_key = target_data_source + DIRECTORY_ERROR + error_file_name - error_obj = s3_resource.Object(bucket_name, error_key) - error_obj.copy(copy_source) + s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=error_key) s3_client.delete_object(Bucket=bucket_name, Key=work_key) print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-02 - workディレクトリの {target_file_name} をerrorディレクトリに移動しました 移動後ファイル名:{error_file_name}') @@ -48,8 +47,7 @@ def error(bucket_name, target_data_source, target_file_name, log_info): # ④ S3バケット内のtargetディレクトリに、「投入データファイル名.error」ファイルを作成する result_error_file_name = target_file_name + '.error' result_error_key = target_data_source + DIRECTORY_TARGET + result_error_file_name - result_error_obj = s3_resource.Object(bucket_name, result_error_key) - result_error_obj.put(Body='') + s3_client.put_object(Bucket=bucket_name, Key=result_error_key, Body=b'') print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-04 - targetディレクトリに {result_error_file_name} を作成しました') except Exception as e: print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-ERR-99 - エラー内容:{e}') @@ -81,16 +79,14 @@ def error_doing_file_exists(bucket_name, target_key, target_data_source, target_ } error_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}' error_key = target_data_source + DIRECTORY_ERROR + error_file_name - error_obj = s3_resource.Object(bucket_name, error_key) - error_obj.copy(copy_source) + s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=error_key) s3_client.delete_object(Bucket=bucket_name, Key=target_key) print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-07 - targetディレクトリの {target_file_name} をerrorディレクトリに移動しました 移動後ファイル名:{error_file_name}') # ③ S3バケット内のtargetディレクトリに、「投入データファイル名.exclusive_error」ファイルを作成する result_error_file_name = target_file_name + '.exclusive_error' result_error_key = target_data_source + DIRECTORY_TARGET + result_error_file_name - result_error_obj = s3_resource.Object(bucket_name, result_error_key) - result_error_obj.put(Body='') + s3_client.put_object(Bucket=bucket_name, Key=result_error_key, Body=b'') print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-08 - targetディレクトリに {result_error_file_name} を作成しました') except Exception as e: print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-ERR-99 - エラー内容:{e}') @@ -99,4 +95,25 @@ def error_doing_file_exists(bucket_name, target_key, target_data_source, target_ print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-09 - doingファイルが存在した時のエラー処理を終了します') # ⑤ 処理を終了する - sys.exit() \ No newline at end of file + sys.exit() + + +# ローカル実行用コード +# 値はよしなに変えてください +# if __name__ == '__main__': + # エラー処理 + # error( + # bucket_name='バケット名', + # target_data_source='データソース名', + # target_file_name='データソース名/target/ファイル名', + # log_info='Info' + # ) + + # doingファイルの有無チェック関数 + # error_doing_file_exists( + # bucket_name='バケット名', + # target_key='投入データのフルパス', + # target_data_source='投入データのディレクトリ名よりデータソースに該当する部分', + # target_file_name='投入データのファイル名', + # log_info='Info' + # )