trigger-config-writer
帮助用户创建、生成和验证 es-triggers 项目的 YAML 配置文件。支持根据描述自动生成配置、交互式创建、格式验证和批量生成。适用于创建 listener、trigger、binding、template、target-system 等转发配置。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
帮助用户创建、生成和验证 es-triggers 项目的 YAML 配置文件。支持根据描述自动生成配置、交互式创建、格式验证和批量生成。适用于创建 listener、trigger、binding、template、target-system 等转发配置。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | trigger-config-writer |
| description | 帮助用户创建、生成和验证 es-triggers 项目的 YAML 配置文件。支持根据描述自动生成配置、交互式创建、格式验证和批量生成。适用于创建 listener、trigger、binding、template、target-system 等转发配置。 |
这个技能用于帮助用户创建和管理 es-triggers 项目的配置文件。所有配置都以 YAML 格式存储在 Git 仓库中,通过 CAC (Configuration as Code) 服务进行管理。
当用户需要以下操作时使用此技能:
es-triggers 支持 11 种配置类型:
| Kind | 用途 | 关键字段 |
|---|---|---|
| listener | 定义输入请求入口 | triggers (数组) |
| trigger | 串联请求转发流程 | sourceInterceptor, targetInterceptor, template, binding, targetSystem |
| adaptor | 聚合多个数据源并返回结果 | sourceInterceptor, adaptorRequests, transformResponse, outputCache, passive |
| target-request | 定义输出请求 | props, errorTracking, postResponseScript |
| adaptor-request | 定义 Adaptor 中的单个数据请求 | binding, template, targetSystem |
| binding | 提取和转换数据 | script, perRequestScript |
| template | 定义输出请求格式 | path, method, headers, query, body |
| target-system | 定义目标地址 | default, <环境名> |
| source-interceptor | 判断是否触发 | script (返回 true=拦截) |
| target-interceptor | 判断是否发送 | script (返回 true=拦截) |
| target-requests-collector | 收集处理结果 | script |
详细说明:参见 配置类型参考
所有配置文件都遵循以下基本结构:
kind: <配置类型>
name: <配置名称>
metadata:
title: <标题>
spec:
# 具体配置字段
Template 和 TargetSystem 中支持 5 种变量替换格式:
| 格式 | 说明 | 示例 |
|---|---|---|
$变量名$ | 字符串替换 | $PROJECT_ID$ |
$@变量名$ | URL 编码 | $@URL$ |
$...变量名$ | 对象展开 | $...DATA$ |
$(Number)变量名$ | 数字类型 | $(Number)COUNT$ |
$(Boolean)变量名$ | 布尔类型 | $(Boolean)ENABLED$ |
详细说明:参见 变量替换参考
github-webhook, deploy-trigger)USER_ID, ACTION_TYPE)variables['@'] (环境选择器), variables['~'] (默认 namespace)/ 开头或为空字符串,避免前缀重叠 (例如: /prod, /staging)详细规范: 参见 命名规范
重要提醒:
/abc 和 /abcd, /prod 和 /production/prod, /staging, /dev当用户需要交互式创建时:
当用户提供了完整描述时:
当需要生成一组相关配置时:
验证配置文件时检查:
生成配置后:
| 符号cac-configs/{kind}/{name}.yaml
生成配置后,告知用户:
cac-configs/{kind}/{name}.yaml接收外部 webhook (如 GitHub, GitLab),转发到内部 API。
需要的配置: TargetSystem → Template → Binding → SourceInterceptor → TargetInterceptor → Trigger → TargetRequest → Listener
聚合多个微服务数据并返回给前端,作为 BFF 层。
需要的配置: TargetSystem → Template → Binding → SourceInterceptor → AdaptorRequest → Adaptor
关键特点: 使用 /adapt/:name 路由,返回自定义数据结构,支持输出缓存和被动模式
根据请求内容或变量条件决定是否转发。
关键配置: SourceInterceptor (输入拦截), TargetInterceptor (输出拦截)
一个输入请求触发多个输出请求,发送到不同的目标系统。
关键配置: 多个 target-request 配置,可选的 target-requests-collector 收集结果
根据环境动态选择目标系统或 target-request。
方式 1: 使用 variables['@'] 选择 target-system 的环境
方式 2: 使用 namespace 选择不同的 target-request
详细工作流: 参见 常见工作流
dayjs(), api() 等函数true = 拦截(不触发),false = 通过(触发)true = 拦截(不发送),false = 通过(发送)namespace 变量赋值并 returnresult 对象赋值,转换和聚合响应数据responses 对象访问所有响应requests[name].response 按需获取响应redirect(url) 触发重定向redis 进行缓存操作命名规范:
@ 和 ~ 例外脚本简洁:保持脚本简单,复杂逻辑考虑拆分
错误处理:在脚本中添加必要的错误处理和日志
模块化:相同的逻辑可以复用配置
测试验证:生成后建议先在测试环境验证
特殊字段使用:
variables['@'] 实现多环境配置切换variables['~'] 实现动态 namespace (必须以 / 开头)namespace 规范:
/ 开头或为空字符串/abc 和 /abcd 会冲突)$变量名$ 格式,不是 ${变量名}@ 和 ~ 例外)/ 开头或为空字符串(避免前缀重叠,如 /abc 和 /abcd){trigger-name}{namespace}