TIPCommon.smp_time

TIPCommon.smp_time 模块提供了一套全面的工具,用于处理集成中的时间数据。它简化了时区转换、连接器的时间戳持久性等复杂任务,以及用于检测操作和连接器中即将发生的执行超时的关键监控功能。

时间转换和处理

这些实用程序提供了用于在各种格式(包括 Unix 时间戳、RFC 3339 字符串和 Python datetime 对象)之间转换时间数据的标准化方法。

函数 参数 说明
change_timezone()
  • dtime:(datetime)源对象。
  • current_tz:(str) 当前时区名称。
  • new_tz:(str) 目标时区名称。
返回:datetime.datetime

将日期时间对象移至新时区。如果任一时区字符串无效,则会引发 ValueError

convert_string_to_timestamp()
  • datetime_string:(str) 源字符串。
返回:int

解析日期时间字符串并返回其等效的 Unix 时间戳。

datetime_to_rfc3339()
  • datetime_obj:(datetime)源对象。
返回:str

将 datetime 对象转换为符合 RFC 3339 标准的字符串。

get_timestamps()
  • range_string:(字符串)已命名的时间范围。
  • start_time_string:(str) 起始界限。
  • end_time_string:(str) 结束界限。
  • error_message:(str) 自定义异常文本。
  • time_in_milliseconds:(布尔值)默认值为 False
返回:tuple[int, int]

根据范围说明和边界字符串计算开始和结束 Unix 时间戳。

get_timestamps_from_range()
  • range_string:(str) 命名平台范围。
  • include_timezone:(bool) 如果为 True,则包含时区信息。
返回:tuple[datetime, datetime]

计算从平台特定的时间范围字符串派生的开始和结束 datetime 对象。

状态和持久性

持久保留“上次运行时间”对于连接器避免重复提取至关重要。这些函数直接与平台交互,以管理执行检查点。

函数 参数 说明
get_last_success_time()
  • siemplify:(ChronicleSOAR) SDK 实例。
  • offset_with_metric:(字典)回退偏移量。
  • time_format:(int) DATETIME (1) 或 UNIX (2)。
  • print_value:(bool) 如果为 True,则记录到控制台。
  • microtime:(布尔值)精度切换开关。
返回:time (DataModel)

检索上次成功执行的时间。如果不存在,则根据偏移量计算后备值。

save_timestamp()
  • siemplify:(ChronicleSOAR) SDK 实例。
  • alerts:(dict) 一批已处理的提醒。
  • timestamp_key:(str) 默认值为 'timestamp'
  • incrementation_value:(整数)要添加到结果中的毫秒数。
  • log_timestamp:(bool) 如果为 True,则记录到控制台。
  • convert_timestamp_to_micro_time:(bool) 切换。
  • convert_a_string_timestamp_to_unix:(bool) 切换。
返回:bool

查找提醒批次中的最新时间戳并保存。如果状态已更新,则返回 True

siemplify_fetch_timestamp()
  • siemplify:(ChronicleSOAR) SDK 实例。
  • datetime_format:(bool) 用于切换对象返回。
  • timezone:(bool) 如果为 True,则强制使用 UTC。
返回:int | datetime

直接从平台数据库中提取当前执行检查点。

siemplify_save_timestamp()
  • siemplify:(ChronicleSOAR) SDK 实例。
  • new_timestamp:(int) 要保存的值。
  • datetime_format:(布尔值)默认值为 False
  • timezone:(布尔值)默认值为 False
返回:None

使用特定的新值更新平台的执行检查点。

validate_timestamp()
  • last_run_timestamp:(datetime)检查值。
  • offset_in_hours:(int) 最长回溯窗口。
  • offset_is_in_days:(bool) 基于天数的逻辑切换开关。
返回:datetime

确保时间戳在允许的时间范围内。如果超出范围,则会引发 ValueError

执行监控

超时监控是一项至关重要的安全功能。这些函数有助于脚本识别处理时间何时即将耗尽,从而使其能够正常停止并保存当前状态。

函数 参数 说明
is_approaching_action_timeout()
  • action_execution_deadline_in_unix:(int) 截止时间。
  • timeout_threshold_in_sec:(int) 缓冲区。默认值为 10
返回:bool

检查操作脚本是否处于终止前的最终缓冲期内。

is_approaching_timeout()
  • connector_starting_time:(整数)开始时间。
  • python_process_timeout:(整数)最长时长。
  • timeout_threshold:(浮点数)0.9 (TIMEOUT_THRESHOLD)。
返回:bool

检测连接器是否已根据 90% TIMEOUT_THRESHOLD 消耗了其时间预算。