From 070763ec8e4393f0821528623c2efeb5511804ad Mon Sep 17 00:00:00 2001 From: Y_SAKAI Date: Tue, 2 Aug 2022 15:10:14 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=83=AD=E3=82=B0=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=81=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E5=90=8D?= =?UTF-8?q?=E3=81=AE=E6=97=A5=E4=BB=98=E5=8F=96=E5=BE=97=E3=81=AE=E4=B8=8D?= =?UTF-8?q?=E5=85=B7=E5=90=88=E4=BF=AE=E6=AD=A3=E3=80=81=E3=82=BF=E3=82=A4?= =?UTF-8?q?=E3=83=A0=E3=82=BE=E3=83=BC=E3=83=B3=E5=88=A9=E7=94=A8=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=81=AE=E5=8F=96=E3=82=8A=E8=BE=BC=E3=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/crm-datafetch/src/config/objects.py | 4 ++-- ecs/crm-datafetch/src/controller.py | 4 ++-- ecs/crm-datafetch/src/converter/convert_strategy.py | 9 +++++---- ecs/crm-datafetch/src/fetch_crm_data_process.py | 4 +++- ecs/crm-datafetch/src/system_var/constants.py | 1 + ecs/crm-datafetch/src/system_var/environments.py | 2 ++ ecs/crm-datafetch/src/util/execute_datetime.py | 2 +- s3/config/crm/task_settings/task_settings.env | 3 ++- 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ecs/crm-datafetch/src/config/objects.py b/ecs/crm-datafetch/src/config/objects.py index 65a7bc9a..20673d70 100644 --- a/ecs/crm-datafetch/src/config/objects.py +++ b/ecs/crm-datafetch/src/config/objects.py @@ -106,8 +106,8 @@ class TargetObject(): @property def upload_file_name(self) -> str: if self.__dict_checker.check_key_exist(UPLOAD_FILE_NAME_KEY): - return self.__object_info[UPLOAD_FILE_NAME_KEY].format(execute_datetime=self.__execute_datetime.to_YYYYMMDDHHMMSS) - return f'{self.__object_info[OBJECT_NAME_KEY]}_{self.__execute_datetime.to_YYYYMMDDHHMMSS}' + return self.__object_info[UPLOAD_FILE_NAME_KEY].format(execute_datetime=self.__execute_datetime.to_YYYYMMDDHHMMSS()) + return f'{self.__object_info[OBJECT_NAME_KEY]}_{self.__execute_datetime.to_YYYYMMDDHHMMSS()}' @property def datetime_column(self) -> str: diff --git a/ecs/crm-datafetch/src/controller.py b/ecs/crm-datafetch/src/controller.py index c531f113..3d0537b4 100644 --- a/ecs/crm-datafetch/src/controller.py +++ b/ecs/crm-datafetch/src/controller.py @@ -44,9 +44,9 @@ def controller() -> None: # ⑥ 最終結果をチェックし、チェック結果をログに出力 if not all([v == 'success' for v in process_result.values()]): - logger.error('E-CTRL-01 一部のデータ取得に失敗しています。詳細はログをご確認ください。') + logger.error('E-CTRL-01 一部のデータ取得に失敗しています 詳細はログをご確認ください') else: - logger.info('I-CTRL-19 すべてのデータの取得に成功しました。') + logger.info('I-CTRL-19 すべてのデータの取得に成功しました') # ⑦ CRMデータ取得処理終了ログを出力する logger.info('I-CTRL-20 CRMデータ取得処理を終了します') diff --git a/ecs/crm-datafetch/src/converter/convert_strategy.py b/ecs/crm-datafetch/src/converter/convert_strategy.py index 92500588..307fbb9a 100644 --- a/ecs/crm-datafetch/src/converter/convert_strategy.py +++ b/ecs/crm-datafetch/src/converter/convert_strategy.py @@ -1,8 +1,9 @@ import re -from datetime import datetime, timedelta, timezone +from datetime import datetime -from src.system_var.constants import (CRM_DATETIME_FORMAT, CSV_FALSE_VALUE, - CSV_TRUE_VALUE, +from dateutil.tz import gettz +from src.system_var.constants import (CONVERT_TZ, CRM_DATETIME_FORMAT, + CSV_FALSE_VALUE, CSV_TRUE_VALUE, DATE_PATTERN_YYYYMMDDHHMMSSFFF_UTC, YYYYMMDDHHMMSS) @@ -48,7 +49,7 @@ class BooleanConvertStrategy: class DatetimeConvertStrategy: def convert_value(self, convert_value: str) -> str: # データ登録処理がJSTとして登録するため、変換処理内で事前にJSTの日次文字列に変換する - return datetime.strptime(convert_value, CRM_DATETIME_FORMAT).astimezone(timezone(timedelta(hours=+9))).strftime(YYYYMMDDHHMMSS) + return datetime.strptime(convert_value, CRM_DATETIME_FORMAT).astimezone(gettz(CONVERT_TZ)).strftime(YYYYMMDDHHMMSS) class FloatConvertStrategy: diff --git a/ecs/crm-datafetch/src/fetch_crm_data_process.py b/ecs/crm-datafetch/src/fetch_crm_data_process.py index 1c37f860..8c66bf59 100644 --- a/ecs/crm-datafetch/src/fetch_crm_data_process.py +++ b/ecs/crm-datafetch/src/fetch_crm_data_process.py @@ -67,12 +67,14 @@ def fetch_crm_data_process(target_object: TargetObject, last_fetch_datetime: Las crm_data_response = fetch_sf_data_retry(fetch_soql, target_object_name, data_counter) + logger.info(f'I-FETCH-05 [{target_object_name}] のレコード取得が成功しました') + except Exception as e: raise SalesforceAPIException( 'E-FETCH-02', FETCH_JP_NAME, f'[{target_object_name}] のレコード取得に失敗しました エラー内容:[{e}]') # ④ CRMデータ取得処理終了ログを出力する - logger.info(f'I-FETCH-05 [{target_object_name}] のレコード取得が成功しました') + logger.info(f'I-FETCH-06 [{target_object_name}] のCRMからのデータ取得処理を終了します') # ⑤ 次の処理へ移行する return crm_data_response diff --git a/ecs/crm-datafetch/src/system_var/constants.py b/ecs/crm-datafetch/src/system_var/constants.py index 56f49681..bf65010c 100644 --- a/ecs/crm-datafetch/src/system_var/constants.py +++ b/ecs/crm-datafetch/src/system_var/constants.py @@ -15,6 +15,7 @@ CRM_FETCH_RECORD_MAX_RETRY_ATTEMPT = 'CRM_FETCH_RECORD_MAX_RETRY_ATTEMPT' CRM_FETCH_RECORD_RETRY_INTERVAL = 'CRM_FETCH_RECORD_RETRY_INTERVAL' # CRMのレコード取得処理のリトライ時の初回待ち秒数 CRM_FETCH_RECORD_RETRY_MIN_INTERVAL = 'CRM_FETCH_RECORD_RETRY_MIN_INTERVAL' # CRMのレコード取得処理のリトライ時の最小待ち秒数 CRM_FETCH_RECORD_RETRY_MAX_INTERVAL = 'CRM_FETCH_RECORD_RETRY_MAX_INTERVAL' # CRMのレコード取得処理のリトライ時の最大待ち秒数 +CONVERT_TZ = 'CONVERT_TZ' # CRMデータの日時を変換するときのタイムゾーン # environments(ECS Task Environment) CRM_AUTH_DOMAIN = 'CRM_AUTH_DOMAIN' # CRMのAPI実行のための認証エンドポイントのドメイン diff --git a/ecs/crm-datafetch/src/system_var/environments.py b/ecs/crm-datafetch/src/system_var/environments.py index 7dc62c1b..b290cc7b 100644 --- a/ecs/crm-datafetch/src/system_var/environments.py +++ b/ecs/crm-datafetch/src/system_var/environments.py @@ -35,6 +35,8 @@ CRM_FETCH_RECORD_RETRY_INTERVAL = int(os.environ.get(constants.CRM_FETCH_RECORD_ CRM_FETCH_RECORD_RETRY_MIN_INTERVAL = int(os.environ.get(constants.CRM_FETCH_RECORD_RETRY_MIN_INTERVAL, 5)) # CRMのレコード取得処理のリトライ時の最大待ち秒数 CRM_FETCH_RECORD_RETRY_MAX_INTERVAL = int(os.environ.get(constants.CRM_FETCH_RECORD_RETRY_MAX_INTERVAL, 50)) +# CRMデータの日時を変換するときのタイムゾーン +CONVERT_TZ = os.environ.get(constants.CONVERT_TZ, 'Asia/Tokyo') # environments(ECS Task Environment) # CRMのAPI実行のための認証エンドポイントのドメイン diff --git a/ecs/crm-datafetch/src/util/execute_datetime.py b/ecs/crm-datafetch/src/util/execute_datetime.py index e87ef861..82a451e2 100644 --- a/ecs/crm-datafetch/src/util/execute_datetime.py +++ b/ecs/crm-datafetch/src/util/execute_datetime.py @@ -14,4 +14,4 @@ class ExecuteDateTime: return self.__execute_datetime.rstrip(MILLISEC_FORMAT).translate(str.maketrans({'-': '/', 'T': '/', ':': None, '.': None})) def to_YYYYMMDDHHMMSS(self) -> str: - return self.__execute_datetime.rstrip(MILLISEC_FORMAT).translate(str.maketrans({'-': None, 'T': None, ':': None, '.': None})) \ No newline at end of file + return self.__execute_datetime.rstrip(MILLISEC_FORMAT).translate(str.maketrans({'-': None, 'T': None, ':': None, '.': None})) diff --git a/s3/config/crm/task_settings/task_settings.env b/s3/config/crm/task_settings/task_settings.env index d48ff51a..1998012c 100644 --- a/s3/config/crm/task_settings/task_settings.env +++ b/s3/config/crm/task_settings/task_settings.env @@ -13,4 +13,5 @@ CRM_FETCH_RECORD_TIMEOUT=300 CRM_FETCH_RECORD_MAX_RETRY_ATTEMPT=3 CRM_FETCH_RECORD_RETRY_INTERVAL=5 CRM_FETCH_RECORD_RETRY_MIN_INTERVAL=5 -CRM_FETCH_RECORD_RETRY_MAX_INTERVAL=50 \ No newline at end of file +CRM_FETCH_RECORD_RETRY_MAX_INTERVAL=50 +CONVERT_TZ='Asia/Tokyo' \ No newline at end of file