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' + # )