diff --git a/ecs/dataimport/dataimport/end.py b/ecs/dataimport/dataimport/end.py index e4d53482..3b31c56b 100644 --- a/ecs/dataimport/dataimport/end.py +++ b/ecs/dataimport/dataimport/end.py @@ -1,7 +1,8 @@ from datetime import datetime + import boto3 -from error import error from common import debug_log +from error import error # 定数 LOG_LEVEL = {'i': 'Info', 'e': 'Error'} @@ -12,7 +13,6 @@ DIRECTORY_WARNING = '/warning/' # クラス変数 s3_client = boto3.client('s3') -s3_resource = boto3.resource('s3') def end(bucket_name, target_data_source, target_file_name, warning_info, log_info, mode): @@ -45,8 +45,7 @@ def end(bucket_name, target_data_source, target_file_name, warning_info, log_inf } done_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}' done_key = target_data_source + DIRECTORY_DONE + done_file_name - done_obj = s3_resource.Object(bucket_name, done_key) - done_obj.copy(copy_source) + s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=done_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-END-02 - workディレクトリの {target_file_name} をdoneディレクトリに移動しました 移動後ファイル名:{done_file_name}') @@ -64,23 +63,20 @@ def end(bucket_name, target_data_source, target_file_name, warning_info, log_inf # warningファイルの作成 warning_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}_war.log' warning_key = target_data_source + DIRECTORY_WARNING + warning_file_name - warning_obj = s3_resource.Object(bucket_name, warning_key) - warning_obj.put(Body=warning_info) + s3_client.put_object(Bucket=bucket_name, Key=warning_key, Body=bytes(warning_info, 'utf-8')) print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-06 - warningディレクトリに {warning_file_name} を作成しました') # warning処理結果ファイルの作成 result_warning_file_name = target_file_name + '.warning' result_warning_key = target_data_source + DIRECTORY_TARGET + result_warning_file_name - result_warning_obj = s3_resource.Object(bucket_name, result_warning_key) - result_warning_obj.put(Body='') + s3_client.put_object(Bucket=bucket_name, Key=result_warning_key, Body=b'') print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-07 - targetディレクトリに {result_warning_file_name} を作成しました') else: # done処理結果ファイルの作成 print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-08 - Warning情報は存在しませんでした') result_done_file_name = target_file_name + '.done' result_done_key = target_data_source + DIRECTORY_TARGET + result_done_file_name - result_done_obj = s3_resource.Object(bucket_name, result_done_key) - result_done_obj.put(Body='') + s3_client.put_object(Bucket=bucket_name, Key=result_done_key, Body=b'') print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-09 - targetディレクトリに {result_done_file_name} を作成しました') # ⑤ 終了処理終了ログを出力する @@ -88,3 +84,17 @@ def end(bucket_name, target_data_source, target_file_name, warning_info, log_inf except Exception as e: print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-END-99 - エラー内容:{e}') error(bucket_name, target_data_source, target_file_name, log_info) + + +# テスト用コード +# 値はよしなに変えてください +# if __name__ == '__main__': +# end( +# bucket_name='バケット名', +# target_data_source='データソース名', +# target_file_name='targetフォルダ内のファイル', +# # warning_info='ワーニング内容', # ワーニングがある場合のテストはこちらを生かす +# warning_info='', +# log_info='Info', +# mode='i' +# )