diff --git a/lambda/transfer-receive-file-between-s3/transfer-receive-file-between-s3.py b/lambda/transfer-receive-file-between-s3/transfer-receive-file-between-s3.py index 7cf53295..17f4cc4d 100644 --- a/lambda/transfer-receive-file-between-s3/transfer-receive-file-between-s3.py +++ b/lambda/transfer-receive-file-between-s3/transfer-receive-file-between-s3.py @@ -113,7 +113,8 @@ def lambda_handler(event, context): transfer_config = None 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: transfer_config = transfer_config_file[key] break @@ -121,6 +122,7 @@ def lambda_handler(event, context): if transfer_config is None: logger.error( f'E-03-01 S3バケットの転送設定が見つかりません。{CONFIG_BUCKET_NAME}/{BUCKET_TRANSFER_SETTING_FILE_FOLDER}/{BUCKET_TRANSFER_SETTING_FILE_NAME}') + delete_doing_file(event) return # ⑥ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、バックアップする @@ -128,16 +130,16 @@ def lambda_handler(event, context): backup_setting = transfer_config['backup_setting'] copy_source = {'Bucket': event_bucket_name, '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_setting['date_pattern']) s3_client.copy_object( - Bucket=backup_buccet, + Bucket=backup_bucket, Key=f'{event_folder_name}/{backup_date_pattern}/{event_file_name}', CopySource=copy_source ) 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オブジェクトの設定内容に基づき、移動する destination_bucket = transfer_config['destination_bucket'].format( @@ -166,3 +168,47 @@ def lambda_handler(event, context): raise e 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 +# )