
如何用 iii console 查看、测试并调用运行中的 worker、函数与触发器【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii当 iii 项目跑起来之后你在浏览器里最常需要回答三件事现在哪些 worker 连在引擎上、哪些函数可以调用以及直接调一下看结果、注册了哪些触发器以及如何模拟触发它们。iii console启动的 console 就是这个用途它列出 workers、functions 和 triggers并展示来自 iii-observability worker 的 traces、logs 和 metrics文档同时提醒做脚本化或 agent 集成时应直接调用 worker 函数而不是走 console。本文的操作路径是用 quickstart 模板搭一个带真实函数与触发器的项目启动引擎和 Compose daemon再启动 console完成「查看 worker → 调用函数 → 测试触发器 → 终端交叉验证」这一整圈。准备条件启动一个带函数的 iii 项目前提是已安装iii二进制。项目安装文档给出的安装命令如下它会从安装源下载并安装引擎及随附组件属于环境变更操作执行前确认你了解其来源curl -fsSL https://install.iii.dev/iii/main/install.sh | sh创建 quickstart 项目它包含两个 workerPython worker 注册函数math::addTypeScript worker 注册函数math::add_two_numbers并通过引擎调用前者iii project init quickstart --template quickstart cd quickstart在第一个终端启动引擎引擎监听ws://localhost:49134iii --config config.yaml在第二个终端创建最小 Compose 文件并启动 Compose daemon。副作用说明printf会在当前目录新建worker-compose.yamldaemon 启动后保持前台运行printf containers: {}\n worker-compose.yaml iii compose --namespace quickstart --engine ws://127.0.0.1:49134在第三个终端依次添加两个 workeriii trigger -n quickstart compose::add worker./workers/math-worker iii trigger -n quickstart compose::add worker./workers/caller-worker判断成功的依据是 Compose daemon 终端的输出以下为文档示例→ math-worker starting ✓ math-worker ready (2.1s) up: 1 of 1 changed in 2.1s→ caller-worker starting ✓ caller-worker ready (2.1s) up: 2 of 2 changed in 2.1s两个已知现象文档有明确说明worker 刚添加时需要时间安装运行时依赖。如果iii trigger math::add a2 b3返回message: Function math::add not found等几秒再试。Linux 上如果 worker 以KVM not accessible失败是因为 worker 启动在需要访问/dev/kvm的 microVM 中参见项目文档 troubleshooting.mdx 中的对应条目。启动 console 并确认它连对了引擎在新的终端里启动 consoleiii consoleiii console会分发给单独安装的iii-console二进制首次使用时下载该二进制也可以直接以iii-console调用。启动后在浏览器打开http://127.0.0.1:3113。先用iii console --help列出全部标志及其默认值确认连接对象符合你的部署标志默认值用途-p, --port3113console 服务器运行端口--host127.0.0.1console 服务器绑定地址--engine-host127.0.0.1iii 引擎所在主机--engine-port3111引擎 REST API 端口--ws-port3112引擎 WebSocket 端口--bridge-port49134console 注册其 worker 函数所用的引擎 WebSocket 端口--no-otel—禁用 console 自身的 OpenTelemetry 导出env:OTEL_DISABLED--otel-service-nameiii-consoleconsole 的 OTel 服务名env:OTEL_SERVICE_NAME--enable-flow—启用实验性 flow 可视化页面env:III_ENABLE_FLOW每个标志都有同名集合的环境变量可覆盖它标志的帮助文本会注明对应 env var。侧边栏的Config页面在运行时显示解析后的值引擎端点、端口、OpenTelemetry 设置与版本不用回头重读标志就能确认当前生效的配置。在 Workers 页查看运行中的 workerWorkers 页列出当前连接到引擎的每一个 worker 进程。每行显示worker 名称或 short ID、它上报的 project / framework / language、带 SDK 版本的运行时徽章、可选的隔离徽章libkrun、docker等按 worker 自报、IP、PID、已注册函数数量、进行中的调用数以及已连接时长。对本节搭好的项目应能看到math-worker与caller-worker两行函数数一列对应各 worker 的注册数量quickstart 中两者各注册一个函数。点击某一行打开详情面板里面有完整 metadata、worker 上报的 project / framework / language 字段、实时指标内存分解、CPU、事件循环滞后、运行时长以及该 worker 注册的函数列表。隔离徽章的含义它反映 worker 通过III_ISOLATION环境变量自报的值。libkrun launcher 会自动注入III_ISOLATIONlibkrun容器或 Kubernetes 部署需要你自己设置III_ISOLATIONdocker或类似值未设置该变量的 worker 不显示徽章。同样的信息可以在终端交叉验证。engine::workers::list是引擎自身注册的函数列出每个已连接 worker 及其指标compose::status则给出进程归属、PID 和最近一次 supervisor 错误iii trigger engine::workers::list iii trigger -n quickstart compose::status fileworker-compose.yaml在 Functions 页查看并调用函数Functions 页列出所有已注册函数按命名空间前缀::之前的部分分组头部有一个开关用于包含或排除系统函数。quickstart 的两个函数会一起出现在math组下。选中一个函数打开详情面板面板包含描述如果函数的 request schema 里提供一个按 request schema 预填了模板的请求体编辑器Invoke按钮用编辑器里的 payload 调用该函数结果视图显示响应或错误以及调用耗时。以math::add_two_numbers为例选中它在编辑器里填{a: 10, b: 20}点击Invoke结果视图即显示返回结果与耗时。quickstart 文档中同一调用的示例输出是{ c: 30 }文档示例。console 的 Invoke 与终端iii trigger走的是同一条调用路径所以可以在终端做交叉验证iii trigger math::add_two_numbers a10 b20两条使用注意对任意函数传--help引擎会返回它的参数与描述iii trigger function::id --help。该输出取决于当前注册了哪些 worker。函数 id 按命名空间唯一路由是严格的iii trigger不带参数时只解析default命名空间跨命名空间调用要传-n, --namespace NS未命中时返回function_not_found并指明该 id 存在于哪些命名空间。在 Triggers 页测试触发器Triggers 页列出所有已注册触发器带All / HTTP / Cron / Event / Other过滤页签页签上显示各类型计数。每行显示摘要HTTP 方法与路径、可读的 cron 表达式、或事件 topic、类型徽章、它路由到的function_id以及该函数的描述。选中一个触发器后详情面板提供按类型区分的测试工具HTTP方法下拉框GET/POST/PUT/PATCH/DELETE、路径参数输入、查询参数构造器、写方法用的 JSON body 编辑器以及Send Request按钮。Cron调度信息可读形式 原始表达式、下次运行预览、状态以及一个Run Now按钮立即触发绑定的函数。Event事件 topic 显示、JSON payload 编辑器以及Emit Event按钮。state 绑定的触发器没有专门的测试器在 States 页编辑相应条目即可触发它编辑会触发任何已注册的state:updated触发器。用一个 HTTP 触发器走一遍 Send Request基础 quickstart 的两个 worker 只注册了函数。要实际使用 HTTP 测试器按 quickstart 文档 暴露一个 HTTP 端点添加 http workeriii trigger -n quickstart compose::add workerhttp打开workers/caller-worker/src/worker.ts把文件末尾注释掉的 HTTP 块取消注释后保存。该块注册http::add_two_numbers函数并把 http 触发器绑定到api_path: /math/add-two-numbers、http_method: POSTworker.registerFunction( http::add_two_numbers, async (payload: { body: { a: number; b: number } }) { const result await worker.trigger { a: number; b: number }, { c: number; running_total: number } ({ function_id: math::add_two_numbers, payload: payload.body, }); return { status_code: 200, body: { c: result.c, running_total: result.running_total }, headers: { Content-Type: application/json }, }; }, ); worker.registerTrigger({ type: http, function_id: http::add_two_numbers, config: { api_path: /math/add-two-numbers, http_method: POST }, });回到 console 的 Triggers 页出现一条新的触发器行摘要为POST /math/add-two-numbers类型徽章为 http并显示它路由到的function_id。点击该行打开详情面板方法保持 POST在 body 编辑器填入{a: 100, b: 200}点击Send Request。响应即函数返回值。quickstart 文档中对应请求的示例输出是{ c: 300, running_total: 335 }文档示例基于 quickstart 完整顺序、含 state worker 时的结果如果你只照本文步骤操作、未启用 quickstart 中的 state 代码块响应中不会出现running_total以结果视图实际显示为准。同一请求也可以在终端发出用于对照curl -X POST http://localhost:3111/math/add-two-numbers \ -H Content-Type: application/json \ -d {a: 100, b: 200}cron 与 event 类型的触发器操作方式相同找到对应行打开详情面板分别用Run Now或Emit Event发起测试。触发器的注册写法如type: cron配expression参见 triggers 文档。限制与边界Traces 与 Logs 页依赖 observability 配置Traces 页读取本地内存中的 trace 存储需要 iii-observability worker 启用 traces并配置exporter: memory或exporter: bothboth同时导出到外部 OTLP collectorLogs 页同理需要logs_exporter: memory或both。States 页不通过 WebSocket 推送实时更新外部写入后需要手动使用刷新控件。iii trigger的默认等待结果是 30000 毫秒可用--timeout-ms调整引擎地址默认localhost:49134可用--address/--port覆盖。console 默认绑定127.0.0.1:3113是面向本机开发环境的界面脚本化或 agent 集成场景文档建议直接调用 worker 函数iii trigger或 SDK 的worker.trigger。下一步到这里你可以在 Workers 页确认每个 worker 的注册函数与实时指标在 Functions 页用Invoke调用任意已注册函数并从结果视图读取响应、错误或耗时在 Triggers 页用 Send Request / Run Now / Emit Event 分别测试 HTTP、Cron、Event 触发器state 类触发器则通过 States 页编辑条目触发。console 还有 Streams、Queues、Traces、Logs 等页面完整说明见 console 文档命令细节参见 CLI reference 与 Functions 文档。【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考