Merge pull request #16 feature-NEWDWH2021-305 into develop
This commit is contained in:
commit
64d4cf974d
@ -59,3 +59,44 @@ def error(bucket_name, target_data_source, target_file_name, log_info):
|
||||
|
||||
# ⑥ 処理を終了する
|
||||
sys.exit()
|
||||
|
||||
def error_doing_file_exists(bucket_name, target_key, target_data_source, target_file_name, log_info):
|
||||
""".doingファイルが存在した時のエラー処理
|
||||
Args:
|
||||
bucket_name : バケット名
|
||||
target_key : 投入データのフルパス
|
||||
target_data_source : 投入データのディレクトリ名よりデータソースに該当する部分
|
||||
target_file_name : 投入データのファイル名
|
||||
log_info : ログに記載するデータソース名とファイル名
|
||||
"""
|
||||
|
||||
try:
|
||||
# ① エラー処理開始ログを出力する
|
||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-06 - doingファイルが存在した時のエラー処理を開始します')
|
||||
|
||||
# ② 投入データファイルをS3バケット内のtargetディレクトリから、以下ファイル名でerrorディレクトリに移動(コピー削除)する
|
||||
copy_source = {
|
||||
'Bucket': bucket_name,
|
||||
'Key': target_key
|
||||
}
|
||||
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.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='')
|
||||
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}')
|
||||
finally:
|
||||
# ④ 終了処理終了ログを出力する
|
||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-09 - doingファイルが存在した時のエラー処理を終了します')
|
||||
|
||||
# ⑤ 処理を終了する
|
||||
sys.exit()
|
||||
@ -5,6 +5,7 @@ import csv
|
||||
import re
|
||||
import sys
|
||||
from error import error
|
||||
from error import error_doing_file_exists
|
||||
from common import debug_log
|
||||
|
||||
# 定数
|
||||
@ -53,7 +54,7 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
|
||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-02 - doingファイル:{doing_file_name} の存在チェック')
|
||||
s3_client.head_object(Bucket=bucket_name, Key=doing_key)
|
||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-INI-01 - 投入データ {target_file_name} は既に処理中です')
|
||||
sys.exit()
|
||||
error_doing_file_exists(bucket_name, target_key, target_data_source, target_file_name, log_info)
|
||||
except Exception as e:
|
||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-03 - doingファイルは存在しませんでした')
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user