用途:该技能用于 iii 框架的核心原语操作,包括函数注册、触发器绑定、调用模式选择、worker 创建、worker 注册表查询、触发条件、自定义触发器类型、通道以及 HTTP 调用函数。
主要能力:iii 有三个顶层原语——Function(如 orders::validate 的命名工作单元)、Trigger(绑定到函数的事件源)、Worker(连接引擎并执行函数的进程)。函数 ID 使用 ::,HTTP api_path 使用前导斜杠,cron 配置使用 expression。注册方式包括 registerFunction(id, handler, options?) 用于本地 worker 代码,registerFunction(id, HttpInvocationConfig, options?) 用于已有 HTTP 服务,registerTrigger({ type, function_id, config, metadata? }) 绑定事件源,trigger({ function_id, payload, action?, timeout? }) 按 ID 调用函数。
调用模式:Sync 用于需要结果的场景;Void(TriggerAction.Void())用于可选副作用;Enqueue(TriggerAction.Enqueue({ queue }))用于带队列策略的可靠异步工作。
Worker 与注册表:可通过 SDK 编写 registerWorker、registerFunction、registerTrigger 创建自有 worker,或浏览 https://workers.iii.dev/ 后调用 compose::add worker=<name> 添加已有能力,用 compose::add worker=<name>@<version> 固定版本,在 containers: 下声明 worker: path://./workers/my-worker,并在 worker-compose.yaml 中提交确切版本以复现项目。内置发现函数包括 engine::workers::list、engine::functions::list、engine::triggers::list、engine::trigger-types::list。
内置触发器:http、cron、durable:subscriber、subscribe、state、stream、log,各自有对应注册配置与处理载荷。可在内置触发器配置中添加 condition_function_id,使处理程序仅在布尔条件函数返回 true 时运行。
命名空间:worker 在 namespace init 选项、III_NAMESPACE 或引擎默认值中注册;Compose 会为其启动的每个 worker 设置 III_NAMESPACE。引擎自有函数(engine::、configuration::、stream::*)位于 default。CLI 可用 iii trigger -n <namespace> <function> 选择命名空间。
限制与边界:引擎端口、适配器、引擎自有 worker、RBAC(rbac-proxy)和部署配置应使用 iii-engine-config;SDK 包导出与语言注意事项使用 iii-sdk-reference;完整后端设计使用 iii-architecture-patterns;失败调用、超时、RBAC 拒绝和可重试性使用 iii-error-handling。元数据中不要放置密钥。iii-sandbox 和 iii-observability 由引擎拥有,不通过注册表添加。