Elastic 自动化工作流概述
Elastic 工作流(Elastic Workflows)是内置于 Elasticsearch 平台的自动化引擎。只需通过 YAML 定义工作流的触发条件、执行步骤、操作动作,平台会全权负责流程的调度与执行。一个工作流可实现 Elasticsearch 查询、数据转换、条件分支流转、外部 API 调用,还能通过预配置的连接器与 Slack、Jira、PagerDuty 等第三方服务深度集成。
在本篇博客中,我们将全面讲解工作流的核心概念,并从零构建一个可运行的实战示例工作流。
工作流是基于 YAML 定义的声明式自动化流程
工作流具备原生可组合特性。你只需定义要实现的业务目标,平台会负责处理执行调度、错误恢复与全链路日志记录。所有工作流均通过 YAML 格式定义,并存储在 Kibana 中。
一个完整的工作流由三大核心组件构成:触发器(Triggers)、输入参数(Inputs)、执行步骤(Steps)。
-
触发器:决定工作流的运行时机
-
告警触发器:当 Kibana 告警规则触发时运行,可完整访问告警上下文
-
定时触发器:按固定时间间隔或 cron 表达式周期性运行
-
手动触发器:通过 UI 或 API 按需触发运行
-
一个工作流可同时配置多个触发器
-
-
输入参数:定义运行时可传入工作流的参数。基于输入参数,可构建可复用的通用工作流,根据不同的调用方式传入差异化参数值。
-
执行步骤:工作流执行的具体动作。步骤默认按顺序串行执行,每个步骤均可引用前置步骤的输出结果。步骤类型主要分为四大类:
-
内部动作:在 Elasticsearch 和 Kibana 内部执行的操作,比如查询索引、运行 ES|QL 查询、创建用例、更新告警状态等
-
外部动作:在外部系统执行的操作,比如发送 Slack 消息、创建 Jira 工单。可使用 Elastic 中已配置的任意连接器,也可通过 HTTP 步骤灵活调用任意 API 或内部服务
-
流控制:通过条件判断、循环、并行执行定义工作流的业务逻辑
-
AI 能力:从大语言模型(LLM)提示词调用,到将智能体作为工作流步骤,解锁智能体工作流的全场景落地
-
一、业务场景与前置说明
业务背景
本工作流对应银行反洗钱可疑交易自动处置核心场景,解决传统风控人工核查效率低、响应慢、合规留痕难的痛点。
-
业务目标:当风控规则触发可疑交易告警时,自动完成「客户身份核验→黑名单核查→历史交易回溯→风险等级判定→分级处置→合规留痕→告警闭环」全流程自动化,替代80%以上的人工重复操作,满足人民银行反洗钱监管要求。
-
适配版本:Elasticsearch & Kibana 9.3.0 及以上9.x系列版本(技术预览版)
-
核心价值:风控响应时效从小时级缩短至秒级,全流程可审计、可追溯,操作标准化零偏差。
ES9.x环境前置准备
1. 索引预配置(ES中已完成创建)
| 索引名称 | 核心用途 | 关键字段说明 |
|---|---|---|
bank_customer_info |
客户全量信息存储 | 客户号、姓名、身份证号、账户状态、开户网点、客户经理、客户风险评级、联系电话 |
bank_card_transactions |
银行卡全量交易流水 | 交易号、卡号、客户号、交易时间、交易金额、交易对手、交易渠道、交易地点、交易状态 |
bank_risk_blacklist |
全行风险黑名单库 | 身份证号、卡号、风险类型、列入时间、管控级别、生效状态 |
bank_risk_disposal_logs |
风控处置审计日志 | 告警ID、客户号、处置时间、处置动作、操作人/系统、处置结果、合规备注(满足监管审计要求) |
2. Kibana预配置连接器
需提前在Kibana「栈管理→连接器」中创建并测试连通性,工作流中直接引用:
-
行内账户管控API连接器:用于账户冻结/解冻等高危操作
-
Jira连接器:用于创建合规核查工单
-
企业微信/Slack连接器:用于通知客户经理与合规团队
-
短信服务连接器:用于给客户发送风险提示短信
-
LLM连接器:已配置合规的大语言模型,用于交易风险智能分析
3. 权限配置(金融场景最小权限原则)
-
工作流执行账号仅分配对应索引的读写权限、连接器使用权限、Kibana告警规则操作权限
-
敏感字段(身份证号、手机号、银行卡号)配置字段级脱敏访问权限
-
工作流基于Kibana空间隔离,仅合规与风控团队可访问
二、ES9.x 银行风控工作流完整YAML
完全遵循ES9.x语法规范,修正原示例语法问题,补充金融场景专属的容错、重试、合规审计、条件执行设计,全量注释清晰可直接落地测试。
YAML
# 工作流基础信息
name: Bank_Suspicious_Transaction_Auto_Disposal
description: 商业银行银行卡可疑交易风控自动核查与闭环处置工作流,满足反洗钱监管合规要求
enabled: true # 工作流启用开关,禁用后无法触发执行
# 全局常量:统一管理配置,避免硬编码,符合金融场景变更管控要求
consts:
# 索引名称统一管理
customer_index: bank_customer_info
transaction_index: bank_card_transactions
blacklist_index: bank_risk_blacklist
audit_log_index: bank_risk_disposal_logs
# 风险等级阈值配置
low_risk_amount_threshold: 50000
high_risk_amount_threshold: 500000
# 通用配置
default_refresh: wait_for
default_timeout: 30s
# 触发器配置:ES9.x支持多触发器同时生效,覆盖自动+手动场景
triggers:
# 主触发器:Kibana风控告警规则触发,自动执行处置流程
- type: alert
rule_id: "bank_card_suspicious_transaction_alert_rule" # 替换为实际告警规则ID
description: 风控可疑交易告警自动触发
# 备用触发器:合规人员手动触发,用于专项核查或补录处置
- type: manual
description: 合规人员手动触发核查处置
# 输入参数:支持手动执行时传入自定义参数,实现工作流复用
inputs:
- name: target_customer_no
type: string
required: false
description: 手动执行时指定的目标客户号,告警触发时自动从上下文获取
- name: target_alert_id
type: string
required: false
description: 手动执行时指定的告警ID,告警触发时自动从上下文获取
# 执行步骤:按顺序串行执行,全流程符合银行风控合规处置规范
steps:
# 步骤1:参数校验与上下文初始化,确保必填参数完整,避免执行中断
- name: init_context
type: console
description: 初始化执行上下文,校验必填参数
with:
message: >
工作流启动执行,执行模式:{{ trigger.type }},
告警ID:{{ inputs.target_alert_id | default: trigger.alert.id }},
客户号:{{ inputs.target_customer_no | default: trigger.alert.context.customer_no }}
# 步骤2:查询客户基础信息,核验客户身份与账户状态
- name: get_customer_info
type: elasticsearch.search
description: 根据客户号查询客户全量基础信息
with:
index: '{{ consts.customer_index }}'
query:
term:
customer_no.keyword: '{{ inputs.target_customer_no | default: trigger.alert.context.customer_no }}'
size: 1
# 失败重试机制:ES查询超时自动重试,金融场景高可用设计
retry:
max_attempts: 3
interval: 2s
backoff_multiplier: 2
# 步骤3:前置校验:客户信息是否存在,不存在则终止流程并记录审计日志
- name: check_customer_exists
type: if
description: 校验客户信息是否存在,不存在则终止流程
condition: '{{ steps.get_customer_info.output.hits.total.value }} == 0'
steps:
- name: customer_not_found_log
type: console
with:
message: '客户号{{ inputs.target_customer_no | default: trigger.alert.context.customer_no }}不存在,流程终止'
- name: customer_not_found_audit
type: elasticsearch.index
with:
index: '{{ consts.audit_log_index }}'
document:
alert_id: '{{ inputs.target_alert_id | default: trigger.alert.id }}'
customer_no: '{{ inputs.target_customer_no | default: trigger.alert.context.customer_no }}'
disposal_time: '{{ "now" | date: "%Y-%m-%d %H:%M:%S" }}'
disposal_action: 流程终止
disposal_result: 客户信息不存在
operator: Elastic Workflows
remark: 可疑交易自动处置流程
refresh: '{{ consts.default_refresh }}'
- name: fail_workflow
type: fail
with:
message: 客户信息不存在,流程强制终止
# 客户存在则继续执行后续流程
else:
- name: customer_exists_log
type: console
with:
message: '客户信息核验通过,客户姓名:{{ steps.get_customer_info.output.hits.hits[0]._source.name }}'
# 步骤4:黑名单核查,判断客户是否在全行风险黑名单中
- name: check_blacklist
type: elasticsearch.search
description: 核查客户是否在风险黑名单中
with:
index: '{{ consts.blacklist_index }}'
query:
bool:
must:
- term:
id_card_no.keyword: '{{ steps.get_customer_info.output.hits.hits[0]._source.id_card_no }}'
- term:
status: 生效
size: 1
retry:
max_attempts: 3
interval: 2s
# 步骤5:近30天交易数据回溯与统计,为风险判定提供依据
- name: get_history_transactions
type: elasticsearch.esql
description: ES|QL查询客户近30天交易数据,做聚合统计
with:
query: >
FROM {{ consts.transaction_index }}
| WHERE customer_no == "{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}"
| WHERE @timestamp >= NOW() - 30d
| STATS
total_trans_amount = SUM(transaction_amount),
total_trans_count = COUNT(transaction_no),
cross_border_count = COUNT(CASE WHEN transaction_channel == "跨境" THEN 1 END),
night_trans_count = COUNT(CASE WHEN HOUR_OF_DAY(@timestamp) >= 22 OR HOUR_OF_DAY(@timestamp) <= 6 THEN 1 END)
BY customer_no
# 步骤6:风险等级判定,基于规则分为低/中/高三个风险等级,核心条件分支逻辑
- name: risk_level_judge
type: console
description: 基于规则计算风险等级,为后续分级处置提供依据
with:
message: >
风险判定完成,近30天总交易金额:{{ steps.get_history_transactions.output[0].total_trans_amount }}元,
跨境交易次数:{{ steps.get_history_transactions.output[0].cross_border_count }}次,
夜间交易次数:{{ steps.get_history_transactions.output[0].night_trans_count }}次,
是否在黑名单:{{ steps.check_blacklist.output.hits.total.value > 0 }}
# ------------------------------
# 分支1:高风险处置流程(黑名单命中/交易金额超50万)
# ------------------------------
- name: high_risk_disposal
type: if
description: 高风险场景自动处置流程
condition: '{{ steps.check_blacklist.output.hits.total.value > 0 || steps.get_history_transactions.output[0].total_trans_amount >= consts.high_risk_amount_threshold }}'
steps:
- name: high_risk_log
type: console
with:
message: '判定为高风险客户,启动紧急管控流程'
# 子步骤1:调用行内API冻结客户账户,高危操作
- name: freeze_customer_account
type: http
description: 调用行内账户管控API,冻结客户银行账户
with:
connector-id: bank_account_control_connector # 替换为实际连接器ID
url: "/api/account/freeze"
method: POST
timeout: '{{ consts.default_timeout }}'
body: >
{
"customer_no": "{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}",
"account_no": "{{ steps.get_customer_info.output.hits.hits[0]._source.account_no }}",
"freeze_reason": "可疑交易高风险预警,反洗钱合规管控",
"operator": "Elastic Workflows 风控自动处置",
"alert_id": "{{ inputs.target_alert_id | default: trigger.alert.id }}"
}
# 失败重试,确保管控动作执行
retry:
max_attempts: 5
interval: 3s
# 子步骤2:给客户发送风险提示短信
- name: send_risk_sms
type: http
description: 调用短信服务,给客户发送风险提示短信
with:
connector-id: bank_sms_connector # 替换为实际连接器ID
url: "/api/sms/send"
method: POST
timeout: '{{ consts.default_timeout }}'
body: >
{
"phone": "{{ steps.get_customer_info.output.hits.hits[0]._source.phone }}",
"content": "【XX银行】尊敬的客户,您的账户存在可疑交易风险,已临时管控,请您携带身份证至就近网点核实处理。"
}
# 非核心步骤,忽略失败,不影响主流程
ignore_failure: true
# 子步骤3:企业微信推送合规团队与客户经理
- name: notify_risk_team
type: wecom
description: 企业微信推送高风险预警给合规团队与专属客户经理
with:
connector-id: bank_wecom_connector # 替换为实际连接器ID
message: |
⚠️【高风险可疑交易预警】
告警ID:{{ inputs.target_alert_id | default: trigger.alert.id }}
客户姓名:{{ steps.get_customer_info.output.hits.hits[0]._source.name }}
客户号:{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}
风险原因:{{ steps.check_blacklist.output.hits.total.value > 0 ? "命中风险黑名单" : "近30天交易金额超50万高风险阈值" }}
处置动作:已自动冻结账户,需立即启动合规核查
客户经理:{{ steps.get_customer_info.output.hits.hits[0]._source.customer_manager }}
# 子步骤4:Jira创建合规核查工单
- name: create_compliance_ticket
type: jira
description: Jira创建合规核查工单,跟进后续处置
with:
connector-id: bank_jira_connector # 替换为实际连接器ID
project: 反洗钱合规部
issue_type: 核查工单
summary: 高风险可疑交易自动处置核查-{{ inputs.target_alert_id | default: trigger.alert.id }}
description: |
客户信息:
姓名:{{ steps.get_customer_info.output.hits.hits[0]._source.name }}
客户号:{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}
开户网点:{{ steps.get_customer_info.output.hits.hits[0]._source.branch_name }}
风险详情:{{ steps.risk_level_judge.with.message }}
已执行处置:账户已自动冻结,已发送客户短信通知
需完成:3个工作日内完成合规核查,反馈处置结果
priority: 最高
ignore_failure: true
# 子步骤5:高风险处置审计日志写入
- name: high_risk_audit_log
type: elasticsearch.index
description: 写入高风险处置审计日志,满足监管要求
with:
index: '{{ consts.audit_log_index }}'
document:
alert_id: '{{ inputs.target_alert_id | default: trigger.alert.id }}'
customer_no: '{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}'
risk_level: 高风险
disposal_time: '{{ "now" | date: "%Y-%m-%d %H:%M:%S" }}'
disposal_action: 账户冻结、短信通知、合规推送、工单创建
disposal_result: 高风险处置完成,待合规人工复核
operator: Elastic Workflows
remark: 可疑交易自动处置全流程留痕
refresh: '{{ consts.default_refresh }}'
# ------------------------------
# 分支2:中风险处置流程(交易金额5万-50万,无黑名单命中)
# ------------------------------
- name: medium_risk_disposal
type: if
description: 中风险场景AI辅助核查+人工跟进流程
condition: >
{{ steps.get_history_transactions.output[0].total_trans_amount >= consts.low_risk_amount_threshold
&& steps.get_history_transactions.output[0].total_trans_amount < consts.high_risk_amount_threshold
&& steps.check_blacklist.output.hits.total.value == 0 }}
steps:
- name: medium_risk_log
type: console
with:
message: '判定为中风险客户,启动AI辅助核查流程'
# 子步骤1:AI大模型智能分析交易风险,生成合规核查建议
- name: ai_risk_analysis
type: ai.prompt
description: 调用LLM生成交易风险分析报告与核查建议
with:
connector-id: bank_llm_connector # 替换为实际LLM连接器ID
prompt: >
你是银行反洗钱合规专家,基于以下客户交易数据,生成300字以内的风险分析报告与可执行的核查建议,
要求语言专业合规,符合反洗钱监管要求,无需额外格式。
客户基础信息:{{ steps.get_customer_info.output.hits.hits[0]._source | json }}
近30天交易统计数据:{{ steps.get_history_transactions.output[0] | json }}
本次触发告警的可疑交易详情:{{ trigger.alert.context.transaction_detail | json }}
temperature: 0.3
timeout: 60s
# 子步骤2:通知客户经理跟进核查
- name: notify_customer_manager
type: wecom
description: 企业微信推送预警信息给专属客户经理
with:
connector-id: bank_wecom_connector
message: |
⚠️【中风险可疑交易预警】
告警ID:{{ inputs.target_alert_id | default: trigger.alert.id }}
客户姓名:{{ steps.get_customer_info.output.hits.hits[0]._source.name }}
客户号:{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}
风险分析:{{ steps.ai_risk_analysis.output.content }}
请于1个工作日内完成客户核实,反馈核查结果
# 子步骤3:中风险处置审计日志写入
- name: medium_risk_audit_log
type: elasticsearch.index
description: 写入中风险处置审计日志
with:
index: '{{ consts.audit_log_index }}'
document:
alert_id: '{{ inputs.target_alert_id | default: trigger.alert.id }}'
customer_no: '{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}'
risk_level: 中风险
disposal_time: '{{ "now" | date: "%Y-%m-%d %H:%M:%S" }}'
disposal_action: AI风险分析、客户经理通知
disposal_result: 中风险处置完成,待客户经理人工核查
operator: Elastic Workflows
ai_analysis_report: '{{ steps.ai_risk_analysis.output.content }}'
refresh: '{{ consts.default_refresh }}'
# ------------------------------
# 分支3:低风险处置流程(交易金额低于5万,无黑名单命中)
# ------------------------------
- name: low_risk_disposal
type: if
description: 低风险场景自动标记闭环流程
condition: >
{{ steps.get_history_transactions.output[0].total_trans_amount < consts.low_risk_amount_threshold
&& steps.check_blacklist.output.hits.total.value == 0 }}
steps:
- name: low_risk_log
type: console
with:
message: '判定为低风险客户,自动标记正常,闭环告警'
# 子步骤1:低风险处置审计日志写入
- name: low_risk_audit_log
type: elasticsearch.index
description: 写入低风险处置审计日志
with:
index: '{{ consts.audit_log_index }}'
document:
alert_id: '{{ inputs.target_alert_id | default: trigger.alert.id }}'
customer_no: '{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}'
risk_level: 低风险
disposal_time: '{{ "now" | date: "%Y-%m-%d %H:%M:%S" }}'
disposal_action: 自动标记正常,告警闭环
disposal_result: 低风险处置完成,无异常
operator: Elastic Workflows
refresh: '{{ consts.default_refresh }}'
# 步骤7:告警状态自动更新,全流程闭环
- name: close_alert
type: kibana.alert.update
description: 自动更新告警状态,完成处置闭环
with:
alert_id: '{{ inputs.target_alert_id | default: trigger.alert.id }}'
status: closed
comment: >
可疑交易自动处置流程完成,风险等级:
{{ steps.high_risk_disposal.condition ? "高风险" : steps.medium_risk_disposal.condition ? "中风险" : "低风险" }}
处置详情见审计日志索引:{{ consts.audit_log_index }}
# 仅告警触发模式执行,手动执行时跳过
condition: '{{ trigger.type }} == "alert"'
ignore_failure: true
# 步骤8:流程执行完成最终日志
- name: workflow_completed
type: console
description: 工作流执行完成最终提示
with:
message: '可疑交易自动处置工作流执行完成,全流程审计日志已写入{{ consts.audit_log_index }}索引'
三、工作流核心能力解析
本工作流完整覆盖Elastic Workflows 9.x全量核心能力,针对原示例一笔带过的技术点做深度落地:
1. 触发器能力
-
双触发器设计:同时支持告警自动触发 (核心生产场景)与手动触发(测试/补录场景),实现一个工作流多场景复用
-
告警上下文完整传递:自动提取告警规则中的客户号、交易详情等上下文信息,无需人工配置
-
手动执行参数化:支持手动传入客户号、告警ID,适配专项核查等个性化场景
2. ES原生操作全量覆盖
-
基础操作:索引查询、文档写入,适配ES9.x最新语法
-
高级能力:使用ES|QL做交易数据聚合统计,替代传统DSL的多步骤聚合逻辑,代码更简洁、执行效率更高
-
合规设计:全流程每一步操作都写入审计日志索引,满足金融监管「操作可追溯、全程可审计」的硬性要求
-
高可用设计:核心ES查询操作配置指数退避重试机制,避免ES集群抖动导致流程中断
3. 流控制与逻辑编排(ES9.x全量流控能力)
-
多层级条件分支:基于风险等级实现高/中/低三个分支的独立处置流程,完全贴合银行真实风控分级处置规范
-
条件执行:给步骤配置
condition参数,实现「仅告警模式执行」「仅条件满足时执行」的精细化控制 -
异常处理:非核心步骤配置
ignore_failure: true,避免短信发送、工单创建等非核心操作失败导致主流程中断 -
强制终止:使用
fail步骤实现异常场景的流程强制终止,避免无效执行
4. 数据流转与Liquid模板语法(金融场景深度应用)
-
全量内置变量覆盖:
consts常量、steps步骤输出、inputs输入参数、trigger触发器上下文、date日期函数,完整覆盖金融场景参数传递需求 -
过滤器高级应用:
default默认值处理、date日期格式化、json对象序列化,解决金融场景参数兼容、格式合规问题 -
三元表达式应用:在告警备注中动态展示风险等级,实现复杂场景的动态内容渲染
5. 外部系统集成(ES9.x连接器能力)
-
多系统无缝集成:通过预配置连接器,实现与行内账户系统、短信平台、企业微信、Jira工单系统的打通,无需额外开发代码
-
高危操作管控:账户冻结等核心操作配置5次重试机制,确保管控动作100%执行;非核心操作配置忽略失败,平衡稳定性与完整性
-
超时控制:每个外部API调用单独配置超时时间,避免外部系统不可用导致工作流卡死
6. AI能力集成(ES9.x AI原生能力)
-
合规场景AI落地:调用LLM生成专业的风险分析报告与核查建议,替代人工的基础分析工作,大幅提升核查效率
-
金融场景prompt优化:配置低temperature值,确保AI输出内容稳定、专业、合规,符合反洗钱监管要求
-
上下文完整传递:将客户信息、交易数据、告警详情完整传入LLM,确保分析结果精准贴合业务场景
四、进阶扩展:与Agent Builder双向集成(银行场景专属)
基于ES9.x双向集成能力,针对银行风控场景做深度扩展,实现「AI推理决策+标准化执行」的完整闭环。
1. 模式一:风控智能体作为工作流步骤
在中风险处置流程中,替换单轮prompt为风控合规智能体,实现多轮深度调查、跨数据源关联分析,替代人工的全量核查工作:
YAML
- name: compliance_agent_analysis
type: ai.agent
description: 调用反洗钱合规智能体,完成全维度深度风险调查
with:
agent_id: bank_aml_compliance_agent # 替换为Agent Builder中创建的智能体ID
message: >
请对该客户开展反洗钱可疑交易深度调查,客户号:{{ steps.get_customer_info.output.hits.hits[0]._source.customer_no }}
要求:1. 核查客户全量历史交易数据,识别异常交易模式;2. 关联核查交易对手的风险情况;3. 匹配反洗钱可疑交易识别标准;4. 给出明确的风险判定结论与处置建议。
timeout: 180s
-
智能体能力:可自主查询ES中的交易数据、客户信息、黑名单数据,调用外部征信API,完成多轮推理分析,输出专业的合规调查报告
-
业务价值:将人工需要2小时完成的核查工作,缩短至3分钟内自动完成,大幅释放合规团队人力
2. 模式二:工作流作为智能体的工具
将本工作流暴露给Agent Builder作为工具,让安全运营智能体在调查安全事件时,自动调用该工作流完成账户管控处置:
-
配置方法:在工作流编辑页面开启「暴露为Agent工具」开关,配置工具名称、描述、输入参数(客户号、告警ID、风险等级)
-
应用场景:安全智能体在调查数据泄露事件时,识别到内部员工账户存在违规操作,自动调用本工作流完成账户冻结、通知合规团队、创建核查工单的标准化处置流程
-
核心价值:实现「智能体决策做什么,工作流执行怎么做」的解耦,确保所有高危操作都遵循标准化流程,全程可审计、可管控,符合金融行业安全规范
五、银行金融场景落地最佳实践
-
合规审计优先
-
全流程每一步操作必须写入审计日志,包含操作人、操作时间、操作动作、执行结果,满足《金融机构反洗钱规定》的审计追溯要求
-
高危操作(账户冻结、解冻)必须配置双人复核机制,可在工作流中增加审批步骤,仅审批通过后才执行管控动作
-
-
数据安全管控
-
严格遵循最小权限原则,工作流执行账号仅分配必要的索引与连接器权限,禁止使用超管账号执行
-
客户敏感信息(身份证号、手机号、银行卡号)必须配置字段级脱敏,工作流中禁止打印、传输明文敏感信息
-
-
高可用与容错设计
-
核心操作必须配置重试机制,非核心操作配置忽略失败,避免单点故障导致流程中断
-
工作流配置最大并发执行数,避免告警风暴导致大量工作流同时执行,影响ES集群稳定性
-
制定灰度发布策略,先在测试环境验证,再小范围试点,最后全量上线
-
-
版本与变更管控
-
工作流YAML代码纳入银行版本控制系统,每次变更必须有变更记录、审批记录、回滚方案
-
常量配置统一管理,业务阈值(风险金额、交易次数)通过常量配置,避免硬编码,便于后续变更调整
-
-
生产环境限制
-
ES9.3版本Workflows为技术预览版,禁止直接用于银行生产环境,建议先在测试/准生产环境验证,待正式版发布后再投产
-
生产环境必须配置监控告警,实时监控工作流的执行成功率、执行时长、异常失败情况,出现问题及时处置
-