diff --git a/stepfunctions/TOOLS/convert_config.yaml b/stepfunctions/TOOLS/convert_config.yaml index d22087bd..27659dcf 100644 --- a/stepfunctions/TOOLS/convert_config.yaml +++ b/stepfunctions/TOOLS/convert_config.yaml @@ -38,6 +38,8 @@ resource: - &STG_SG_MST_INST_ALL "sg-0483fd75c76fa5808" # セキュリティグループ(ecs-jskult-batch-trn-result-data-bio-lot) - &STG_SG_TRN_RESULT_DATA_BIO_LOT "sg-07ca545e440dd83b7" + # TODO: 本番リリース時にIDを正式版にする + - &STG_SG_UPDATE_BIS_DAY "sg-0b58046abfa017e0e" # 本番環境 product: # サブネット(PrivateSubnet1) @@ -71,6 +73,8 @@ resource: # セキュリティグループ(ecs-jskult-batch-trn-result-data-bio-lot) # TODO: 本番リリース時にIDを正式版にする - &PRD_SG_TRN_RESULT_DATA_BIO_LOT "sg-xxxxxxxxxxxxx" + # TODO: 本番リリース時にIDを正式版にする + - &PRD_SG_UPDATE_BIS_DAY "sg-xxxxxxxxxxxxx" config: # CRMデータ取得 r-crm-datafetch-state: @@ -382,4 +386,33 @@ config: # セキュリティグループ(ecs-all) SG_ECS_ALL: *PRD_SG_ECS_ALL # セキュリティグループ(ecs-jskult-batch-ultmarc-io) - SG_TRN_RESULT_DATA_BIO_LOT: *PRD_SG_TRN_RESULT_DATA_BIO_LOT \ No newline at end of file + SG_TRN_RESULT_DATA_BIO_LOT: *PRD_SG_TRN_RESULT_DATA_BIO_LOT + r-jskult-batch-update-business-day-state: + # ステージング環境 + staging: + # AWSアカウントID + AWS_ACCOUNT_ID: *AWS_ACCOUNT_ID + # 東京リージョン + REGION_AP_NORTHEAST_1: *REGION_AP_NORTHEAST_1 + # サブネット(PrivateSubnet1) + SUBNET_PRI_1A: *STG_SUBNET_PRI_1A + # サブネット(PrivateSubnet2) + SUBNET_PRI_1D: *STG_SUBNET_PRI_1D + # セキュリティグループ(ecs-all) + SG_ECS_ALL: *STG_SG_ECS_ALL + # セキュリティグループ(ecs-jskult-batch-ultmarc-io) + SG_UPDATE_BIS_DAY: *STG_SG_UPDATE_BIS_DAY + # 本番環境 + product: + # AWSアカウントID + AWS_ACCOUNT_ID: *AWS_ACCOUNT_ID + # 東京リージョン + REGION_AP_NORTHEAST_1: *REGION_AP_NORTHEAST_1 + # サブネット(PrivateSubnet1) + SUBNET_PRI_1A: *PRD_SUBNET_PRI_1A + # サブネット(PrivateSubnet2) + SUBNET_PRI_1D: *PRD_SUBNET_PRI_1D + # セキュリティグループ(ecs-all) + SG_ECS_ALL: *PRD_SG_ECS_ALL + # セキュリティグループ(ecs-jskult-batch-ultmarc-io) + SG_UPDATE_BIS_DAY: *PRD_SG_UPDATE_BIS_DAY \ No newline at end of file diff --git a/stepfunctions/r-jskult-batch-update-business-day-state/r-jskult-batch-update-business-day-state.json b/stepfunctions/r-jskult-batch-update-business-day-state/r-jskult-batch-update-business-day-state.json new file mode 100644 index 00000000..b6cd2a25 --- /dev/null +++ b/stepfunctions/r-jskult-batch-update-business-day-state/r-jskult-batch-update-business-day-state.json @@ -0,0 +1,129 @@ +{ + "Comment": "実消化&アルトマーク 日付テーブル更新ステートマシン", + "StartAt": "params", + "States": { + "params": { + "Comment": "パラメータ設定", + "Type": "Pass", + "Parameters": { + "ecs": { + "LaunchType": "FARGATE", + "Cluster": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:cluster/mbj-newdwh2021-#{ENV_NAME}-jskult-batch-update-business-day-ecs", + "TaskDefinition": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:task-definition/mbj-newdwh2021-#{ENV_NAME}-task-jskult-batch-update-business-day", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "Subnets": [ + "#{SUBNET_PRI_1A}", + "#{SUBNET_PRI_1D}" + ], + "SecurityGroups": [ + "#{SG_ECS_ALL}", + "#{SG_UPDATE_BIS_DAY}" + ], + "AssignPublicIp": "DISABLED" + } + }, + "Overrides": { + "ContainerOverrides": [ + { + "Name": "mbj-newdwh2021-#{ENV_NAME}-container-jskult-batch-update-business-day", + "Environment": [ + { + "Name": "BATCH_EXECUTION_ID", + "Value.$": "$$.Execution.Id" + }, + { + "Name": "MAX_RUN_COUNT", + "Value.$": "$.maxRunCount" + } + ] + } + ] + } + } + }, + "ResultPath": "$.params", + "Next": "exec-ecs-task" + }, + "exec-ecs-task": { + "Type": "Task", + "Resource": "arn:aws:states:::ecs:runTask.sync", + "Parameters": { + "LaunchType.$": "$.params.ecs.LaunchType", + "Cluster.$": "$.params.ecs.Cluster", + "TaskDefinition.$": "$.params.ecs.TaskDefinition", + "NetworkConfiguration.$": "$.params.ecs.NetworkConfiguration", + "Overrides.$": "$.params.ecs.Overrides" + }, + "ResultPath": "$.result", + "Retry": [ + { + "ErrorEquals": [ + "States.ALL" + ], + "BackoffRate": 2, + "IntervalSeconds": 3, + "MaxAttempts": 3 + } + ], + "Catch": [ + { + "ErrorEquals": [ + "States.ALL" + ], + "Next": "ErrorEnd", + "ResultPath": "$.result" + } + ], + "Next": "scan-jskult-batch-run-manage", + "Comment": "ECSタスク起動" + }, + "scan-jskult-batch-run-manage": { + "Type": "Task", + "Resource": "arn:aws:states:::dynamodb:getItem", + "Parameters": { + "TableName": "mbj-newdwh2021-#{ENV_NAME}-jskult-batch-run-manage", + "Key": { + "execution_id": { + "S.$": "$$.Execution.Id" + } + } + }, + "Next": "Choice", + "ResultPath": "$.scan" + }, + "Choice": { + "Type": "Choice", + "Choices": [ + { + "Variable": "$.scan.Item", + "IsPresent": false, + "Next": "ErrorEnd", + "Comment": "バッチ実行管理テーブルにデータが存在しない場合" + }, + { + "Variable": "$.scan.Item.batch_run_status.S", + "StringEquals": "retry", + "Next": "wait-for-retry", + "Comment": "バッチ実行管理テーブルのスターテスがリトライの場合" + } + ], + "Default": "NormalEnd" + }, + "wait-for-retry": { + "Type": "Wait", + "SecondsPath": "$.retryIntervalSecond", + "Next": "exec-ecs-task" + }, + "NormalEnd": { + "Comment": "正常終了", + "Type": "Succeed" + }, + "ErrorEnd": { + "Comment": "異常終了", + "Type": "Fail", + "Error": "StatesError", + "Cause": "StepFunctions ErrorEnd" + } + } +} \ No newline at end of file