環境変数のバリデーションチェックの実装

This commit is contained in:
mori.k 2025-05-30 15:08:15 +09:00
parent fe26aa38cf
commit ed55a30bf1
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,36 @@
from src.batch.environment.jskult_batch_environment import \
JskultBatchEnvironment
from src.system_var import environment
class MstInstAllEnvironment(JskultBatchEnvironment):
"""実消化&アルトマークのバッチ処理で使用する環境変数を管理するクラス"""
def __init__(self):
self.JSKULT_BACKUP_BUCKET = environment.JSKULT_BACKUP_BUCKET
self.BATCH_MANAGE_DYNAMODB_TABLE_NAME = environment.BATCH_MANAGE_DYNAMODB_TABLE_NAME
self.MAX_RUN_COUNT = environment.MAX_RUN_COUNT
self.PROCESS_NAME = environment.PROCESS_NAME
self.TRANSFER_RESULT_FOLDER = environment.TRANSFER_RESULT_FOLDER
self.TRANSFER_RESULT_FILE_NAME = environment.TRANSFER_RESULT_FILE_NAME
def validate(self):
"""
必須の環境変数が設定されているかどうか検査する
DB関連の環境変数は対象外とする
Raises:
EnvironmentVariableNotSetException: 環境変数の設定ミス
"""
super()._assert_variable_not_empty(
self.JSKULT_BACKUP_BUCKET, 'JSKULT_BACKUP_BUCKET')
super()._assert_variable_not_empty(self.BATCH_MANAGE_DYNAMODB_TABLE_NAME,
'BATCH_MANAGE_DYNAMODB_TABLE_NAME')
super()._assert_variable_is_int(self.MAX_RUN_COUNT, 'MAX_RUN_COUNT')
# MAX_RUN_COUNTは数値として扱うため、検査後に変換
self.MAX_RUN_COUNT = int(self.MAX_RUN_COUNT)
super()._assert_variable_not_empty(self.PROCESS_NAME, 'PROCESS_NAME')
super()._assert_variable_not_empty(
self.TRANSFER_RESULT_FOLDER, 'TRANSFER_RESULT_FOLDER')
super()._assert_variable_not_empty(
self.TRANSFER_RESULT_FILE_NAME, 'TRANSFER_RESULT_FILE_NAME')

View File

@ -4,9 +4,12 @@ import os.path as path
import tempfile
from src.aws.s3 import JskSendBucket, JskTransferListBucket
from src.batch.environment.mst_inst_all_environment import \
MstInstAllEnvironment
from src.batch.jskult_batch_entrypoint import JskultBatchEntrypoint
from src.db.database import Database
from src.error.exceptions import (BatchOperationException,
EnvironmentVariableNotSetException,
MaxRunCountReachedException)
from src.logging.get_logger import get_logger
from src.manager.jskult_batch_run_manager import JskultBatchRunManager
@ -19,6 +22,14 @@ logger = get_logger('メルク施設マスタ作成')
class MstInstAll(JskultBatchEntrypoint):
def __init__(self):
super().__init__()
self.environment = MstInstAllEnvironment()
# 必須の環境変数が設定されていない場合、エラーにする
try:
self.environment.validate()
except EnvironmentVariableNotSetException as e:
logger.exception(e)
return
def execute(self):
logger.info("メルク施設マスタ作成処理を開始します。")