十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

iii Worker Registry 详解:浏览注册表、用 iii worker add 添加 Worker 及工件类型解析

iii Worker Registry 详解:浏览注册表、用 iii worker add 添加 Worker 及工件类型解析 iii Worker Registry 详解浏览注册表、用 iii worker add 添加 Worker 及工件类型解析【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii本篇基于 iii 仓库中docs/0-20-0版本的 Worker Registry 文档 展开系统讲解 iii Worker Registry注册表的浏览方式、iii worker add命令的三种 Worker 来源iii 注册表、本地目录、Docker/OCI 镜像仓库以及注册表 Worker 的工件类型。读完本文你将掌握如何在 iii 项目中定位并安装一个满足能力需求的 Worker并能结合crates/iii-worker的源码理解版本解析、完整性校验与自动启动的底层机制。浏览 Worker Registryiii Worker Registry 位于workers.iii.dev是全部可安装 Worker 的索引。注册表中每个 Worker 页面会列出以下关键信息该 Worker 提供的函数functions与触发器类型trigger types其配置 schema即config.yaml中可填写的字段支持的平台附带的agent skills供 AI 代理消费的能力描述。这些信息用于帮助你在项目中定位一个满足特定能力需求的 Worker。此外Worker 也可以直接发布在 Docker 和 OCI 兼容的镜像仓库中通过镜像引用方式安装。用 iii worker add 添加 Workeriii worker add接受三种来源。无论哪种来源Worker 都会被写入项目根的config.yaml并自动启动iii worker add iii-state # 从 iii 注册表下载并添加一个 worker iii worker add ./workers/my_worker # 添加用 iii worker init 创建的本地 worker iii worker add ghcr.io/org/worker:tag # 从 Docker 或 OCI 镜像仓库添加 worker三种来源的区分逻辑可以直接在源码中印证。在 local_worker.rs 中is_local_path用于判断输入是否为本地路径其测试用例明确断言ghcr.io/org/worker:tag这类镜像引用不是本地路径而本地路径则要求目录下存在iii.worker.yaml清单文件——该文件提供 Worker 的name、默认配置等资源信息若目录中没有清单错误提示会列出查找过的文件iii.worker.yaml、package.json、Cargo.toml、pyproject.toml并给出修复建议。注册表名称则走registry.rs中的解析流程见下文版本解析与底层实现。补充说明add子命令的可选参数这些在文档中未展开、但在 app.rs 的 CLI 定义中有明确定义参数作用--force/-f强制重新下载先删除已有工件再添加--no-wait不阻塞等待引擎完成 Worker 启动--yes/-y跳过确认提示适用于 CI 或大型依赖图超过 32 个 Worker的非交互安装关于等待行为CLI 定义中的注释说明add默认最多等待 120 秒让 Worker 报告 ready超时后命令返回 shell但 Worker 仍会继续启动此时可用iii worker status继续观察启动过程、iii worker logs查看日志。版本解析与底层实现文档中iii worker add iii-state这类纯名称输入在源码层面对应 registry.rs 中的解析与请求逻辑nameversion语法parse_worker_input会将输入按第一个切分为名称与可选版本如state0.22.2未指定版本时解析latest。请求地址默认 API 基址为https://api.workers.iii.devDEFAULT_API_URL可用环境变量III_API_URL覆盖客户端向GET /download/{slug}发起请求带上version查询参数在 CI 环境检测CI、GITHUB_ACTIONS等标准环境变量中会附加citrue。响应大小限制MAX_REGISTRY_RESPONSE_BYTES将注册表 JSON 响应上限设为 1 MiB防止不受信任或有缺陷的注册表在结构校验依赖环检测和下载/解包字节上限之前分配无界内存。名称安全校验validate_worker_name限定 Worker 名称只能包含字母数字、连字符、下划线、点号不能为空或包含..且不能以.开头——因为 bundle 安装根目录~/.iii/workers-bundle/保留了.locks和.staging内部控制目录以点开头的名称如.locks会在磁盘上遮蔽这些目录。Worker 名称解析成功后add的写入路径会更新config.yaml并生成/更新iii.lock锁文件managed.rs 中的锁文件逻辑要求 bundle 类型节点必须同时携带archive_url与sha256拒绝缺失这两项的 bundle 节点从而保证安装路径不会静默退化为无法校验的下载。相关子命令还包括remove从config.yaml和iii.lock移除 Worker、reinstall类似add --force但立即返回、update将iii.lock中锁定的 Worker 更新到注册表最新已发布版本、clear清除~/.iii/下的下载工件。Worker 的移除、启停start / stop / restart / sync / verify 等等更完整的子命令集参见 Workers 文档。工件类型Artifact Types文档给出的口径是注册表中的每个 Worker 以原生二进制或Docker / OCI 兼容镜像两种形式发布。原生二进制按平台分发提供 macOS、Linux、Windows 各自的工件下载后直接以进程方式运行Docker / OCI 镜像一个镜像可在所有受支持平台运行。从源码结构看注册表实际返回的工件类型比文档口径更细。registry.rs 中按type字段反序列化的WorkerInfoResponse枚举包含四个变体type结构体关键字段含义binaryBinaryWorkerResponsebinaries平台 -urlsha256映射、config按平台下载原生二进制下载时校验 sha256imageOciWorkerResponseimage_urlDocker / OCI 镜像工件engineEngineWorkerResponse仅name、version引擎内置 Worker注册表返回 204 No Content无工件下载bundleBundleWorkerResponsearchive_urlsha256打包为 tar.gz 的本地 Worker 目录下载后校验 sha256、原子解压经 libkrun 内的本地 Worker 通道运行对应文档中两种主要发布形态的印证binary的binaries字段是平台 -BinaryInfo{url, sha256}的映射正对应文档所述per-platform artifacts for macOS, Linux, and Windows且每个工件自带 sha256 用于完整性校验image对应文档中的 Docker / OCI 镜像形态。对于这类工件registry.rs 中定义了MANIFEST_PATH /iii/worker.yaml即镜像内的清单读取路径用于在镜像中定位 Worker 描述。小结与延伸阅读场景命令从 iii 注册表添加可version锁定版本iii worker add iii-state添加本地 Worker 目录需含iii.worker.yamliii worker add ./workers/my_worker从 Docker/OCI 镜像仓库添加iii worker add ghcr.io/org/worker:tag强制重新下载工件iii worker add name --force不等待启动完成iii worker add name --no-waitCI 非交互安装iii worker add name --yes三个要点值得记住其一任何来源的add都会同时写config.yaml并自动启动 Worker版本信息锁定在iii.lock中其二注册表工件均带 sha256 校验bundle 类型尤其严格缺少archive_url/sha256会直接拒绝安装其三iii worker init用于从零创建新 Worker而iii worker add用于安装已有 Worker两者不要混淆。进一步阅读Workersiii worker 完整子命令集Workers Registry 发布侧文档creating-workers关键源码crates/iii-worker/src/cli/registry.rs、crates/iii-worker/src/cli/app.rs、crates/iii-worker/src/cli/local_worker.rs、crates/iii-worker/src/cli/managed.rs【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表