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/ecs/jskult-batch/src/system_var/environment.py b/ecs/jskult-batch/src/system_var/environment.py index 4e220ba0..bd1c9c24 100644 --- a/ecs/jskult-batch/src/system_var/environment.py +++ b/ecs/jskult-batch/src/system_var/environment.py @@ -10,7 +10,7 @@ DB_SCHEMA = os.environ['DB_SCHEMA'] # AWS JSKULT_CONFIG_BUCKET = os.environ['JSKULT_CONFIG_BUCKET'] BATCH_EXECUTION_ID = os.environ['BATCH_EXECUTION_ID'] -MAX_RUN_COUNT = os.environ['MAX_RUN_COUNT'] +MAX_RUN_COUNT = int(os.environ['MAX_RUN_COUNT']) TRANSFER_RESULT_FOLDER = os.environ['TRANSFER_RESULT_FOLDER'] TRANSFER_RESULT_FILE_NAME = os.environ['TRANSFER_RESULT_FILE_NAME'] DCF_INST_MERGE_SEND_FILE_NAME = os.environ['DCF_INST_MERGE_SEND_FILE_NAME'] diff --git a/s3/config/jskult/task_settings/archive_jsk_data_task_settings.env b/s3/config/jskult/task_settings/archive_jsk_data_task_settings.env new file mode 100644 index 00000000..1a8b2051 --- /dev/null +++ b/s3/config/jskult/task_settings/archive_jsk_data_task_settings.env @@ -0,0 +1,11 @@ +# task environment file. +LOG_LEVEL=INFO +ARCHIVE_TRN_RESULT_FOLDER=/jsk/trn_result_data +ARCHIVE_TRN_RESULT_BIO_FOLDER=/jsk/trn_result_data_bio +ARCHIVE_TRN_RESULT_BIO_LOT_FOLDER=/jsk/trn_result_data_bio_lot +ARCHIVE_TRN_RESULT_INVENTORY_FOLDER=/jsk/trn_recive_inventry +DB_CONNECTION_MAX_RETRY_ATTEMPT=4 +DB_CONNECTION_RETRY_INTERVAL_INIT=5 +DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS=5 +DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS=50 + diff --git a/s3/config/jskult/task_settings/mst_inst_all_task_settings.env b/s3/config/jskult/task_settings/mst_inst_all_task_settings.env new file mode 100644 index 00000000..85e70ad1 --- /dev/null +++ b/s3/config/jskult/task_settings/mst_inst_all_task_settings.env @@ -0,0 +1,9 @@ +# task environment file. +LOG_LEVEL=INFO +ENTRYPOINT_MODULE_NAME=jskult-batch-mst-inst-all +TRANSFER_RESULT_FOLDER=transfer_result +TRANSFER_RESULT_FILE_NAME=transfer_result.json +DB_CONNECTION_MAX_RETRY_ATTEMPT=4 +DB_CONNECTION_RETRY_INTERVAL_INIT=5 +DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS=5 +DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS=50 diff --git a/s3/config/jskult/task_settings/trn_result_data_bio_lot_task_settings.env b/s3/config/jskult/task_settings/trn_result_data_bio_lot_task_settings.env new file mode 100644 index 00000000..f5adb7ab --- /dev/null +++ b/s3/config/jskult/task_settings/trn_result_data_bio_lot_task_settings.env @@ -0,0 +1,9 @@ +# task environment file. +LOG_LEVEL=INFO +PROCESS_NAME=jskult-batch-trn-result-data-bio-lot +TRANSFER_RESULT_FOLDER=transfer_result +TRANSFER_RESULT_FILE_NAME=transfer_result.json +DB_CONNECTION_MAX_RETRY_ATTEMPT=4 +DB_CONNECTION_RETRY_INTERVAL_INIT=5 +DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS=5 +DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS=50 diff --git a/s3/config/jskult/task_settings/update_business_day_task_settings.env b/s3/config/jskult/task_settings/update_business_day_task_settings.env new file mode 100644 index 00000000..b5217d60 --- /dev/null +++ b/s3/config/jskult/task_settings/update_business_day_task_settings.env @@ -0,0 +1,11 @@ +# task environment file. +LOG_LEVEL=INFO +PROCESS_NAME=jskult-batch-update-business-day +JSKULT_CONFIG_CALENDAR_FOLDER=jskult/calendar +JSKULT_CONFIG_CALENDAR_RUN_ARCHIVE_DAY_FILE_NAME=jsk_archive_run_day.txt +JSKULT_CONFIG_EXPECTED_DATA_LIST_FOLDER=jskult/expected_data_list +JSKULT_CONFIG_EXPECTED_DATA_LIST_FILE_NAME=jsk_expected_data_list.json +DB_CONNECTION_MAX_RETRY_ATTEMPT=4 +DB_CONNECTION_RETRY_INTERVAL_INIT=5 +DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS=5 +DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS=50 diff --git a/stepfunctions/TOOLS/convert_config.yaml b/stepfunctions/TOOLS/convert_config.yaml index 560a6594..d68153e1 100644 --- a/stepfunctions/TOOLS/convert_config.yaml +++ b/stepfunctions/TOOLS/convert_config.yaml @@ -32,6 +32,17 @@ 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" + # セキュリティグループ(ecs-jskult-batch-mst-inst-all) + - &STG_SG_MST_INST_ALL "sg-0483fd75c76fa5808" + # セキュリティグループ(ecs-jskult-batch-trn-result-data-bio-lot) + - &STG_SG_TRN_RESULT_DATA_BIO_LOT "sg-07ca545e440dd83b7" + # セキュリティグループ(ecs-jskult-batch-update-business-day) + - &STG_SG_UPDATE_BIS_DAY "sg-0b58046abfa017e0e" + # セキュリティグループ(ecs-jskult-batch-archive-jsk-data) + - &STG_SG_JSK_ARCHIVE "sg-0bbdd7d4ebb5ba222" + # 本番環境 product: # サブネット(PrivateSubnet1) @@ -56,6 +67,21 @@ 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" + # セキュリティグループ(ecs-jskult-batch-mst-inst-all) + # TODO: 本番リリース時にIDを正式版にする + - &PRD_SG_MST_INST_ALL "sg-xxxxxxxxxxxxx" + # セキュリティグループ(ecs-jskult-batch-trn-result-data-bio-lot) + # TODO: 本番リリース時にIDを正式版にする + - &PRD_SG_TRN_RESULT_DATA_BIO_LOT "sg-xxxxxxxxxxxxx" + # セキュリティグループ(ecs-jskult-batch-update-business-day) + # TODO: 本番リリース時にIDを正式版にする + - &PRD_SG_UPDATE_BIS_DAY "sg-xxxxxxxxxxxxx" + # セキュリティグループ(ecs-jskult-batch-archive-jsk-data) + # TODO: 本番リリース時にIDを正式版にする + - &PRD_SG_JSK_ARCHIVE "sg-xxxxxxxxxxxxx" config: # CRMデータ取得 r-crm-datafetch-state: @@ -281,3 +307,148 @@ 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 + r-jskult-batch-mst-inst-all-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_MST_INST_ALL: *STG_SG_MST_INST_ALL + # 本番環境 + 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_MST_INST_ALL: *PRD_SG_MST_INST_ALL + r-jskult-batch-trn-result-data-bio-lot-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_TRN_RESULT_DATA_BIO_LOT: *STG_SG_TRN_RESULT_DATA_BIO_LOT + # 本番環境 + 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_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 + r-jskult-batch-archive-jsk-data-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_JSK_ARCHIVE: *STG_SG_JSK_ARCHIVE + # 本番環境 + 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_JSK_ARCHIVE: *PRD_SG_JSK_ARCHIVE diff --git a/stepfunctions/r-jskult-batch-archive-jsk-data-state/r-jskult-batch-archive-jsk-data-state.json b/stepfunctions/r-jskult-batch-archive-jsk-data-state/r-jskult-batch-archive-jsk-data-state.json new file mode 100644 index 00000000..44ef2300 --- /dev/null +++ b/stepfunctions/r-jskult-batch-archive-jsk-data-state/r-jskult-batch-archive-jsk-data-state.json @@ -0,0 +1,72 @@ +{ + "Comment": "実消化_過去データアーカイブ処理ステートマシン", + "StartAt": "params", + "States": { + "params": { + "Comment": "パラメータ設定", + "Type": "Pass", + "Parameters": { + "sns": { + "TopicArn": "arn:aws:sns:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:nds-notice-#{ENV_NAME}" + }, + "ecs": { + "Cluster": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:cluster/mbj-newdwh2021-#{ENV_NAME}-jskult-batch-archive-jsk-data-ecs", + "LaunchType": "FARGATE", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "Subnets": [ + "#{SUBNET_PRI_1A}", + "#{SUBNET_PRI_1D}" + ], + "SecurityGroups": [ + "#{SG_ECS_ALL}", + "#{SG_JSK_ARCHIVE}" + ], + "AssignPublicIp": "DISABLED" + } + } + } + }, + "ResultPath": "$.params", + "Next": "exec-ecs-task" + }, + "exec-ecs-task": { + "Comment": "ECSタスク起動", + "Type": "Task", + "Resource": "arn:aws:states:::ecs:runTask.sync", + "Parameters": { + "Cluster.$": "$.params.ecs.Cluster", + "LaunchType.$": "$.params.ecs.LaunchType", + "TaskDefinition": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:task-definition/mbj-newdwh2021-#{ENV_NAME}-task-jskult-batch-archive-jsk-data", + "NetworkConfiguration.$": "$.params.ecs.NetworkConfiguration" + }, + "Retry": [ + { + "ErrorEquals": ["States.ALL"], + "BackoffRate": 2, + "IntervalSeconds": 5, + "MaxAttempts": 3 + } + ], + "Catch": [ + { + "ErrorEquals": ["States.ALL"], + "ResultPath": "$.result", + "Next": "ErrorEnd" + } + ], + "ResultPath": "$.result", + "Next": "NormalEnd" + }, + "NormalEnd": { + "Comment": "正常終了", + "Type": "Succeed" + }, + "ErrorEnd": { + "Comment": "異常終了", + "Type": "Fail", + "Error": "StatesError", + "Cause": "StepFunctions ErrorEnd" + } + } +} 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..73816f70 --- /dev/null +++ b/stepfunctions/r-jskult-batch-dcf-inst-merge-io-state/r-jskult-batch-dcf-inst-merge-io-state.json @@ -0,0 +1,129 @@ +{ + "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", + "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 diff --git a/stepfunctions/r-jskult-batch-mst-inst-all-state/r-jskult-batch-mst-inst-all-state.json b/stepfunctions/r-jskult-batch-mst-inst-all-state/r-jskult-batch-mst-inst-all-state.json new file mode 100644 index 00000000..54086560 --- /dev/null +++ b/stepfunctions/r-jskult-batch-mst-inst-all-state/r-jskult-batch-mst-inst-all-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-mst-inst-all-ecs", + "TaskDefinition": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:task-definition/mbj-newdwh2021-#{ENV_NAME}-task-jskult-batch-mst-inst-all", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "Subnets": [ + "#{SUBNET_PRI_1A}", + "#{SUBNET_PRI_1D}" + ], + "SecurityGroups": [ + "#{SG_ECS_ALL}", + "#{SG_MST_INST_ALL}" + ], + "AssignPublicIp": "DISABLED" + } + }, + "Overrides": { + "ContainerOverrides": [ + { + "Name": "mbj-newdwh2021-#{ENV_NAME}-container-jskult-batch-mst-inst-all", + "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 diff --git a/stepfunctions/r-jskult-batch-trn-result-data-bio-lot-state/r-jskult-batch-trn-result-data-bio-lot-state.json b/stepfunctions/r-jskult-batch-trn-result-data-bio-lot-state/r-jskult-batch-trn-result-data-bio-lot-state.json new file mode 100644 index 00000000..4720e9e4 --- /dev/null +++ b/stepfunctions/r-jskult-batch-trn-result-data-bio-lot-state/r-jskult-batch-trn-result-data-bio-lot-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-trn-result-data-bio-lot-ecs", + "TaskDefinition": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:task-definition/mbj-newdwh2021-#{ENV_NAME}-task-jskult-batch-trn-result-data-bio-lot", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "Subnets": [ + "#{SUBNET_PRI_1A}", + "#{SUBNET_PRI_1D}" + ], + "SecurityGroups": [ + "#{SG_ECS_ALL}", + "#{SG_TRN_RESULT_DATA_BIO_LOT}" + ], + "AssignPublicIp": "DISABLED" + } + }, + "Overrides": { + "ContainerOverrides": [ + { + "Name": "mbj-newdwh2021-#{ENV_NAME}-container-jskult-batch-trn-result-data-bio-lot", + "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 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