本地 Windows 工作站运行 RhinoCompute,通常使用本机已有 Rhino 授权,不额外产生核心小时费用。
在 Windows Server 或 Linux Server 上运行 RhinoCompute,则通常进入 Core-Hour Billing 模型。服务器启动 Rhino 时会使用 RHINO_TOKEN 指向对应的计费团队。
核心小时计费按“服务器核心数 x Rhino 运行时间”计费,按分钟折算。官方计费说明中给出的价格是每 core-hour 0.10 美元。实际成本应以 McNeel 当前页面为准。
要点:
idlespan 能让空闲子进程关闭,从而减少不必要的运行时间。RHINO_TOKEN 能触发团队计费,必须像密码一样保护。概念流程:
RHINO_TOKEN。Windows PowerShell 示例:
[System.Environment]::SetEnvironmentVariable('RHINO_TOKEN', 'your token here', 'Machine')
注意:不要把真实 token 放入 wiki、工单、日志、源码仓库或截图中。
| 项目 | RHINO_TOKEN | RHINO_COMPUTE_KEY |
|---|---|---|
| 用途 | Rhino 授权和核心小时计费。 | 客户端调用 Compute 的认证密钥。 |
| 谁使用 | 服务端 Rhino/Compute 进程。 | 客户端请求 header 和服务端验证。 |
| 泄漏后果 | 他人可能消耗你的计费额度。 | 他人可调用你的 Compute 服务。 |
| 传输位置 | 环境变量,不应传给普通客户端。 | header 名称为 RhinoComputeKey。 |
两者都必须保密,但保护目的不同。
服务端:
[System.Environment]::SetEnvironmentVariable('RHINO_COMPUTE_KEY', 'your-secret-api-key', 'Machine')
客户端 HTTP header:
RhinoComputeKey: your-secret-api-key
如果服务端没有配置 RHINO_COMPUTE_KEY,部分 POST 端点会处于未认证状态。生产环境不应这样部署。
最小生产架构建议:
公网 | v HTTPS 网关 / 业务 API | v 内网 RhinoCompute
如果必须让 Compute 直接暴露到公网:
/sdk、诊断端点等暴露面做评估。–block-private-urls 或 RHINO_COMPUTE_BLOCK_PRIVATE_URLS=true。如果 Compute 或 Grasshopper 定义支持服务端读取 URL,攻击者可能试图让服务器访问:
这类风险称为 SSRF。对公网部署,建议启用私有地址阻断,并在外层业务服务限制可读取的 URL 域名。
默认请求体上限常见为约 50 MB。提高限制前要考虑:
长耗时 Grasshopper 定义可能需要提高超时,但超时越长,恶意或错误请求占用资源越久。
建议:
RHINO_TOKEN 和 RHINO_COMPUTE_KEY?