@computesdk/铁路
计算SDK的铁路提供者 - 运行命令在 铁路沙盒,ephemeric 计算环境 由铁路平台支撑.
安装
npm install @computesdk/railway
需要节点.js 22 - 基础
railwaySDK依赖于节点22 API(例如全局性)WebSocket) (中文(简体) ).
设置
- 在 railway.com/账户/托肯。 。 。 .
- 查找您想要运行的环境 ID( Railway 项目 – 环境设置) .
- 设置环境变量 :
export RAILWAY_API_TOKEN=your_token_here
export RAILWAY_ENVIRONMENT_ID=your_environment_id_here
快速启动
配置 compute 与铁路供应商并创建一个沙盒:
import { compute } from 'computesdk';
import { railway } from '@computesdk/railway';
compute.setConfig({
provider: railway({
token: process.env.RAILWAY_API_TOKEN,
environmentId: process.env.RAILWAY_ENVIRONMENT_ID,
}),
});
const sandbox = await compute.instances.create();
const result = await sandbox.runCommand('echo "hello from Railway"');
console.log(result.stdout);
await sandbox.destroy();
或者,在只需要一个供应商时直接给供应商工厂打电话:
import { railway } from '@computesdk/railway';
const sdk = railway({ token: process.env.RAILWAY_API_TOKEN });
const sandbox = await sdk.sandbox.create();
配置
环境变量
| 变量 | 需求 | 说明 |
|---|---|---|
RAILWAY_API_TOKEN | 对 | 铁路API令牌曾被认证. |
RAILWAY_ENVIRONMENT_ID | 建议 | 铁路环境沙盒通车. |
配置选项
railway({
token: '...', // defaults to RAILWAY_API_TOKEN
environmentId: '...', // defaults to RAILWAY_ENVIRONMENT_ID
});
每个命令执行超时支持通过 runCommand'选项( e){ timeout: ms }),它映射到铁路公司 timeoutSec。 。 。 .
支持的特性
| 特性 | 支助 | 页:1 |
|---|---|---|
命令执行runCommand(中文(简体) ) | ✅ | 后卫 sandbox.exec。 。 。 . timeout 被映射到铁路公司 timeoutSec。 。 。 . |
文件系统( E)filesystem.*(中文(简体) ) | ✅ | 在壳上执行cat编号 :base64编号 :mkdir编号 :ls编号 :rm),因为铁路公司没有专门的文件系统API. |
列出沙盒( L)list(中文(简体) ) | ✅ | 假设在配置环境中的沙盒 . |
| 使用 ID 获取/ 销毁 | ✅ | 通过 Sandbox.connect 编号 : sandbox.destroy。 。 。 . |
港口接触量(getUrl(中文(简体) ) | ❌ | 铁路沙盒不曝光公用一港URL. |
| 模板/快照 | ❌ | 铁路模板是建设时段的构建者(Sandbox.template()),不是一个ID地址资源,所以它们没有被映射到计算SDK模板/snapshot. |
限制
- 无端口暴露.
getUrl抛出... 铁路沙盒不公布每个港口的公开URL. - 文件系统基于 shell. 文件操作在沙盒内运行 shell 命令, 因此需要带有 POSIX shell
base64, (中文(简体) ),ls,以及通常的creautils(在铁路默认图像上呈现). - 模板/相片不曝光. 使用基础
railwaySDK的车Sandbox.template()如果您需要自定义基础图像, 直接构建器 .
许可证
麻省理工学院