From 4d2bffcf3bc68ac80a17cb3412522675f184f29d Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 28 May 2025 17:08:02 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20DCF=E5=89=8A=E9=99=A4=E6=96=B0=E8=A6=8F?= =?UTF-8?q?=20=E9=96=8B=E5=A7=8B=E3=83=AD=E3=82=B0=E3=82=92=E5=87=BA?= =?UTF-8?q?=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/batch/dcf_inst_merge_io.py | 1 + stepfunctions/TOOLS/convert_config.yaml | 34 +++++ ...-jskult-batch-dcf-inst-merge-io-state.json | 122 ++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 stepfunctions/r-jskult-batch-dcf-inst-merge-io-state/r-jskult-batch-dcf-inst-merge-io-state.json diff --git a/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py b/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py index ad311d42..82c7cfbe 100644 --- a/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py +++ b/ecs/jskult-batch/src/batch/dcf_inst_merge_io.py @@ -22,6 +22,7 @@ class DcfInstMergeIO(JskultBatchEntrypoint): super().__init__() def execute(self): + logger.info("DCF削除新規マスタ作成処理を開始します。") jskult_hdke_tbl_manager = JskultHdkeTblManager() jskult_batch_run_manager = JskultBatchRunManager( environment.BATCH_EXECUTION_ID) diff --git a/stepfunctions/TOOLS/convert_config.yaml b/stepfunctions/TOOLS/convert_config.yaml index 560a6594..98700734 100644 --- a/stepfunctions/TOOLS/convert_config.yaml +++ b/stepfunctions/TOOLS/convert_config.yaml @@ -32,6 +32,8 @@ resource: - &STG_SG_JSKULT_TRANSFER_RECEIVE_FILE "sg-08d43e8e118178d39" # セキュリティグループ(ecs-jskult-batch-ultmarc-io) - &STG_SG_JSKULT_ULTMARC_IO "sg-014caf29e738d106a" + # セキュリティグループ(ecs-jskult-batch-ultmarc-io) + - &STG_SG_DCF_INST_MERGE_IO "sg-0b5d1639a83d28f66" # 本番環境 product: # サブネット(PrivateSubnet1) @@ -56,6 +58,9 @@ resource: # セキュリティグループ(ecs-jskult-batch-ultmarc-io) # TODO: 本番リリース時にIDを正式版にする - &PRD_SG_JSKULT_ULTMARC_IO "sg-xxxxxxxxxxxxx" + # セキュリティグループ(ecs-jskult-batch-ultmarc-io) + # TODO: 本番リリース時にIDを正式版にする + - &PRD_SG_DCF_INST_MERGE_IO "sg-xxxxxxxxxxxxx" config: # CRMデータ取得 r-crm-datafetch-state: @@ -281,3 +286,32 @@ config: SG_ECS_ALL: *PRD_SG_ECS_ALL # セキュリティグループ(ecs-jskult-batch-ultmarc-io) SG_JSKULT_ULTMARC_IO: *PRD_SG_JSKULT_ULTMARC_IO + r-jskult-batch-dcf-inst-merge-io-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_DCF_INST_MERGE_IO: *STG_SG_DCF_INST_MERGE_IO + # 本番環境 + 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_DCF_INST_MERGE_IO: *PRD_SG_DCF_INST_MERGE_IO diff --git a/stepfunctions/r-jskult-batch-dcf-inst-merge-io-state/r-jskult-batch-dcf-inst-merge-io-state.json b/stepfunctions/r-jskult-batch-dcf-inst-merge-io-state/r-jskult-batch-dcf-inst-merge-io-state.json new file mode 100644 index 00000000..4497f85c --- /dev/null +++ b/stepfunctions/r-jskult-batch-dcf-inst-merge-io-state/r-jskult-batch-dcf-inst-merge-io-state.json @@ -0,0 +1,122 @@ +{ + "Comment": "実消化&アルトマーク DCF施設削除新規マスタ作成ステートマシン", + "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-dcf-inst-merge-io-ecs", + "TaskDefinition": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:task-definition/mbj-newdwh2021-#{ENV_NAME}-task-jskult-batch-dcf-inst-merge-io", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "Subnets": [ + "#{SUBNET_PRI_1A}", + "#{SUBNET_PRI_1D}" + ], + "SecurityGroups": [ + "#{SG_ECS_ALL}", + "#{SG_DCF_INST_MERGE_IO}" + ], + "AssignPublicIp": "DISABLED" + } + }, + "Overrides": { + "ContainerOverrides": [ + { + "Name": "mbj-newdwh2021-#{ENV_NAME}-container-jskult-batch-dcf-inst-merge-io", + "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.batch_run_status.S", + "StringEquals": "retry", + "Next": "wait-for-retry" + } + ], + "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