feat: 正規表現の解釈方法を修正。コンフィグのキーの誤りを修正。

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2024-07-17 10:29:59 +09:00
parent 42fe7804c4
commit 3c761cd038

View File

@ -113,7 +113,8 @@ def lambda_handler(event, context):
transfer_config = None transfer_config = None
for key in transfer_config_file.keys(): for key in transfer_config_file.keys():
match_result = re.fullmatch(event_file_name, key) filename_regex = re.compile(key)
match_result = filename_regex.fullmatch(event_file_name)
if match_result is not None: if match_result is not None:
transfer_config = transfer_config_file[key] transfer_config = transfer_config_file[key]
break break
@ -121,6 +122,7 @@ def lambda_handler(event, context):
if transfer_config is None: if transfer_config is None:
logger.error( logger.error(
f'E-03-01 S3バケットの転送設定が見つかりません。{CONFIG_BUCKET_NAME}/{BUCKET_TRANSFER_SETTING_FILE_FOLDER}/{BUCKET_TRANSFER_SETTING_FILE_NAME}') f'E-03-01 S3バケットの転送設定が見つかりません。{CONFIG_BUCKET_NAME}/{BUCKET_TRANSFER_SETTING_FILE_FOLDER}/{BUCKET_TRANSFER_SETTING_FILE_NAME}')
delete_doing_file(event)
return return
# ⑥ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、バックアップする # ⑥ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、バックアップする
@ -128,16 +130,16 @@ def lambda_handler(event, context):
backup_setting = transfer_config['backup_setting'] backup_setting = transfer_config['backup_setting']
copy_source = {'Bucket': event_bucket_name, copy_source = {'Bucket': event_bucket_name,
'Key': event_object_key} 'Key': event_object_key}
backup_buccet = backup_setting['backup_bucet'].format(env=ENV) backup_bucket = backup_setting['backup_bucket'].format(env=ENV)
backup_date_pattern = datetime.date.today().strftime( backup_date_pattern = datetime.date.today().strftime(
backup_setting['date_pattern']) backup_setting['date_pattern'])
s3_client.copy_object( s3_client.copy_object(
Bucket=backup_buccet, Bucket=backup_bucket,
Key=f'{event_folder_name}/{backup_date_pattern}/{event_file_name}', Key=f'{event_folder_name}/{backup_date_pattern}/{event_file_name}',
CopySource=copy_source CopySource=copy_source
) )
logger.info( logger.info(
f'I-04-01 受信ファイルのバックアップ完了::{backup_buccet}/{event_folder_name}/{backup_date_pattern}/{event_file_name}') f'I-04-01 受信ファイルのバックアップ完了::{backup_bucket}/{event_folder_name}/{backup_date_pattern}/{event_file_name}')
# ⑦ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、移動する # ⑦ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、移動する
destination_bucket = transfer_config['destination_bucket'].format( destination_bucket = transfer_config['destination_bucket'].format(
@ -166,3 +168,47 @@ def lambda_handler(event, context):
raise e raise e
return return
# 動作確認用のコード
# if __name__ == '__main__':
# lambda_handler(
# {
# "Records": [
# {
# "eventVersion": "2.1",
# "eventSource": "aws:s3",
# "awsRegion": "ap-northeast-1",
# "eventTime": "2024-07-16T07:10:33.021Z",
# "eventName": "ObjectCreated:Put",
# "userIdentity": {
# "principalId": "AWS:AIDA4A3J5AIPDAT6MUJPZ"
# },
# "requestParameters": {
# "sourceIPAddress": "118.238.231.215"
# },
# "responseElements": {
# "x-amz-request-id": "0BST21P92A15BH55",
# "x-amz-id-2": "db9n9RpQxHEnq5o5ZLCeIGpuka54ghMHcbJ2Rj9aCcpjf111D4dyTZn5w5VvzV6W56rU89cSx/ihzkEHs8wk30ckbtRMYQ0byJn0UfK6bjg="
# },
# "s3": {
# "s3SchemaVersion": "1.0",
# "configurationId": "accesslog-receive-event2",
# "bucket": {
# "name": "mbj-newdwh2021-staging-hcp-web-receive",
# "ownerIdentity": {
# "principalId": "A1YQ10QIZBI5OE"
# },
# "arn": "arn:aws:s3:::mbj-newdwh2021-staging-hcp-web-receive"
# },
# "object": {
# "key": "palantir/hcpweb_accesslog_2024-07-16-071045.csv",
# "size": 597820,
# "eTag": "94299e880925b6f655c090521ff83d7a",
# "sequencer": "0066961CE8E7A670F2"
# }
# }
# }
# ]
# },
# None
# )