Merge pull request #486 feature-NEWDWH2021-1913 into develop

This commit is contained in:
下田雅人 2025-05-29 14:40:02 +09:00
commit d962a85cb4
12 changed files with 801 additions and 1 deletions

View File

@ -22,6 +22,7 @@ class DcfInstMergeIO(JskultBatchEntrypoint):
super().__init__() super().__init__()
def execute(self): def execute(self):
logger.info("DCF削除新規マスタ作成処理を開始します。")
jskult_hdke_tbl_manager = JskultHdkeTblManager() jskult_hdke_tbl_manager = JskultHdkeTblManager()
jskult_batch_run_manager = JskultBatchRunManager( jskult_batch_run_manager = JskultBatchRunManager(
environment.BATCH_EXECUTION_ID) environment.BATCH_EXECUTION_ID)

View File

@ -10,7 +10,7 @@ DB_SCHEMA = os.environ['DB_SCHEMA']
# AWS # AWS
JSKULT_CONFIG_BUCKET = os.environ['JSKULT_CONFIG_BUCKET'] JSKULT_CONFIG_BUCKET = os.environ['JSKULT_CONFIG_BUCKET']
BATCH_EXECUTION_ID = os.environ['BATCH_EXECUTION_ID'] 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_FOLDER = os.environ['TRANSFER_RESULT_FOLDER']
TRANSFER_RESULT_FILE_NAME = os.environ['TRANSFER_RESULT_FILE_NAME'] TRANSFER_RESULT_FILE_NAME = os.environ['TRANSFER_RESULT_FILE_NAME']
DCF_INST_MERGE_SEND_FILE_NAME = os.environ['DCF_INST_MERGE_SEND_FILE_NAME'] DCF_INST_MERGE_SEND_FILE_NAME = os.environ['DCF_INST_MERGE_SEND_FILE_NAME']

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -32,6 +32,17 @@ resource:
- &STG_SG_JSKULT_TRANSFER_RECEIVE_FILE "sg-08d43e8e118178d39" - &STG_SG_JSKULT_TRANSFER_RECEIVE_FILE "sg-08d43e8e118178d39"
# セキュリティグループ(ecs-jskult-batch-ultmarc-io) # セキュリティグループ(ecs-jskult-batch-ultmarc-io)
- &STG_SG_JSKULT_ULTMARC_IO "sg-014caf29e738d106a" - &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: product:
# サブネット(PrivateSubnet1) # サブネット(PrivateSubnet1)
@ -56,6 +67,21 @@ resource:
# セキュリティグループ(ecs-jskult-batch-ultmarc-io) # セキュリティグループ(ecs-jskult-batch-ultmarc-io)
# TODO: 本番リリース時にIDを正式版にする # TODO: 本番リリース時にIDを正式版にする
- &PRD_SG_JSKULT_ULTMARC_IO "sg-xxxxxxxxxxxxx" - &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: config:
# CRMデータ取得 # CRMデータ取得
r-crm-datafetch-state: r-crm-datafetch-state:
@ -281,3 +307,148 @@ config:
SG_ECS_ALL: *PRD_SG_ECS_ALL SG_ECS_ALL: *PRD_SG_ECS_ALL
# セキュリティグループ(ecs-jskult-batch-ultmarc-io) # セキュリティグループ(ecs-jskult-batch-ultmarc-io)
SG_JSKULT_ULTMARC_IO: *PRD_SG_JSKULT_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

View File

@ -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"
}
}
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}
}