feat: 登録処理中断ファイルがある場合、処理を起動させない処理の追加

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2022-11-16 19:02:52 +09:00
parent 0da7efa1ed
commit 56c880be67
2 changed files with 46 additions and 10 deletions

View File

@ -61,14 +61,14 @@ def lambda_handler(event, context):
if __name__ == '__main__':
# ローカル実行用
# ローカル実行用。バケット名やファイルキーはよしなに変えてください。
lambda_handler({"Records": [{
"s3": {
"bucket": {
"name": "test-shimoda-bucket"
},
"object": {
"key": "folder/object_key"
"key": "crm/target/CRM_Account_20221116111800.csv"
}
}
}]}, {})

View File

@ -52,7 +52,38 @@
},
"Comment": "パラメータ設定",
"ResultPath": "$.params",
"Next": "data-import"
"Next": "?IsExistsFatalErrorFile"
},
"?IsExistsFatalErrorFile": {
"Type": "Task",
"Parameters": {
"Bucket.$": "$.InputParams.BucketName",
"Key.$": "States.Format('{}/target/.detected_fatal_error_ecs', $.InputParams.DataSourceName)"
},
"Resource": "arn:aws:states:::aws-sdk:s3:headObject",
"ResultPath": "$.result",
"Catch": [
{
"ErrorEquals": [
"States.ALL"
],
"Next": "data-import",
"ResultPath": "$.result"
}
],
"Comment": "ECSタスク起動エラーファイル存在チェック",
"Next": "PendingDataImportNotice"
},
"PendingDataImportNotice": {
"Type": "Task",
"Resource": "arn:aws:states:::aws-sdk:sns:publish",
"Parameters": {
"TopicArn.$": "$.params.sns.TopicArn",
"Subject": "データ登録ECSタスク異常通知",
"Message.$": "States.Format('「{}/{}/target/」に登録処理中断ファイル(.detected_fatal_error_ecs)が見つかったため、データ登録の起動を中断しました。\n', $.InputParams.BucketName, $.InputParams.DataSourceName)"
},
"End": true,
"Comment": "データ登録処理起動中断通知"
},
"data-import": {
"Type": "Task",
@ -67,7 +98,9 @@
"ResultPath": "$.result",
"Retry": [
{
"ErrorEquals": ["States.ALL"],
"ErrorEquals": [
"States.ALL"
],
"BackoffRate": 2,
"IntervalSeconds": 3,
"MaxAttempts": 3
@ -75,7 +108,9 @@
],
"Catch": [
{
"ErrorEquals": ["States.ALL"],
"ErrorEquals": [
"States.ALL"
],
"Next": "CreateImportPendingFile",
"ResultPath": "$.result"
}
@ -88,22 +123,23 @@
"Parameters": {
"Body": "",
"Bucket.$": "$.InputParams.BucketName",
"Key.$": "States.Format('{}.pending-import', $.InputParams.TargetKey)"
"Key.$": "States.Format('{}/target/.detected_fatal_error_ecs', $.InputParams.DataSourceName)"
},
"Resource": "arn:aws:states:::aws-sdk:s3:putObject",
"Next": "FailedNotice",
"Comment": "データ登録保留ファイル作成",
"Comment": "データ登録処理起動中断ファイル作成",
"ResultPath": "$.result"
},
"FailedNotice": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Resource": "arn:aws:states:::aws-sdk:sns:publish",
"Parameters": {
"TopicArn.$": "$.params.sns.TopicArn",
"Subject": "データ登録ECSタスク異常通知",
"Message.$": "States.Format('【{}】{}のデータ登録が失敗したため、登録中断ファイルを作成しました。\n\n バケット名:{}\n取込ファイルパス{}\n\n', $.InputParams.DataSourceName, $.InputParams.FileName, $.InputParams.BucketName, $.InputParams.TargetKey)"
"Message.$": "States.Format('【{}】{}のデータ登録が失敗したため、登録処理中断ファイル(.detected_fatal_error_ecs)を作成しました。\n\n バケット名:{}\n取込ファイルパス{}\n\n', $.InputParams.DataSourceName, $.InputParams.FileName, $.InputParams.BucketName, $.InputParams.TargetKey)"
},
"Next": "Fail"
"Next": "Fail",
"Comment": "データ登録処理起動失敗通知"
},
"Success": {
"Type": "Succeed",