用途:配置和调试 FinFocus 的智能插件路由,把成本查询按提供商、区域、模式与优先级分派给合适的插件。
主要能力:在 config.yaml 中通过 routing.plugins 定义插件路由,字段包括 name(须与已安装插件名一致)、priority(数值越大越优先,默认 0)、features(限制能力,默认全部)、patterns(声明式类型匹配)、fallback(失败时是否尝试下一个,默认 true)。支持的能力有 ProjectedCosts、ActualCosts、Recommendations、Carbon、DryRun、Budgets、BatchCost,名称区分大小写,features 为空表示全部启用。模式匹配支持 glob(filepath.Match 语义,* 可跨 /)与 regex(RE2 语法),模式优先级高于自动提供商匹配。匹配优先级依次为:声明式模式、自动提供商(来自 GetPluginInfo 的 SupportedProviders)、全局插件(SupportedProviders 为空或 [""]);pulumi: 内部类型除非被模式显式匹配,否则跳过自动匹配。区域从资源属性按 region > availabilityZone > availability_zone > location > ARN 顺序提取,可用区会归一化(如 us-west-2a → us-west-2),任一侧为空视为通配,比较不区分大小写。
使用方式:未配置 routing 时引擎会查询所有插件;需要控制时再添加配置。可用命令查看与模拟:finfocus config routes list、finfocus config routes list --output json、finfocus config routes test aws:ec2:Instance、finfocus config routes test aws:ec2:Instance us-east-1、finfocus config routes test aws:ec2:Instance --output json。配置加载时自动校验,错误阻断(空名称、插件缺失、无效正则、负优先级、无效模式类型、空模式),警告不阻断(重复插件配置、未知能力名)。
限制与注意:优先级相同(全为 0)时插件并行查询;$0.00 是有效结果,不触发回退;仅 nil/空结果或错误触发回退;InvalidArgument 不触发回退。多区域、按能力、按模式及多云配置示例见 references/routing-scenarios.md。