feat: データ登録処理 エラー処理内のresourceインタフェースをクライアントインタフェースに変更
This commit is contained in:
parent
7a86e834dc
commit
7a21b22861
@ -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()
|
||||
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'
|
||||
# )
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user