@daohoangson/计算船
上游前出版的计算SDK船供应商的临时建造
@computesdk/boat软件包。 API 相同; 切换为@computesdk/boat一旦它被释放.
ComputeSDK的船提供商:Ubuntu云沙盒有流出命令,签名文件传输,命名快照和模板,以及HTTPS预览URL.
安装
npm install computesdk @computesdk/provider @daohoangson/computesdk-boat
设置
在其中创建 API 密钥 船用仪表板 并导出 :
export BOAT_API_KEY=boat_...
# Optional: custom API endpoint (defaults to https://boat.dev/api/v1)
export BOAT_API_BASE=https://boat.dev/api/v1
使用量
import { createCompute } from '@computesdk/provider';
import { boat } from '@daohoangson/computesdk-boat';
const compute = createCompute({ provider: boat({}) });
const sandbox = await compute.instances.create({ type: 'small' });
try {
const result = await sandbox.runCommand('echo "Hello from Boat"');
console.log(result.stdout);
await sandbox.filesystem.writeFile('/tmp/hello.txt', 'Hello from Boat');
console.log(await sandbox.filesystem.readFile('/tmp/hello.txt'));
} finally {
await sandbox.destroy();
}
配置
| 选项 | 含义 |
|---|---|
apiKey | API 密钥; 返回到 BOAT_API_KEY |
baseURL | API URL; 返回到 BOAT_API_BASE,则 https://boat.dev/api/v1 |
timeout | 以毫秒计的默认沙盒寿命; 省略了使用 Boat 的 1小时默认值 |
readyTimeout | 提供以毫秒为单位的等待期限;默认为30万 |
snapshotTimeout | 命名快照保存截止日期, 以毫秒为单位; 默认为 600 000 |
preview | 默认预览设置 : public, (中文(简体) ), localhost,以及 title |
createOptions | 本地船创建默认值, 如 type, (中文(简体) ), environment, (中文(简体) ), noEnv, (中文(简体) ), from, (中文(简体) ), org,以及 ttlSeconds |
特征
- 沙盒创建、获取、列表和永久销毁
- 前景命令,包括重新连接输出流、可选超时和远程清理;背景命令
- 通过共享守护进程 API 的互动进程
- 文件系统访问, 签名的二进制传输
/home/user财务报告和审定财务报表/tmp(单位:千美元)readBoatFile, (中文(简体) ),writeBoatFile(中文(简体) ) - 通过命名快照和模板
provider.snapshot财务报告和审定财务报表provider.template - 按键保护的 HTTPS 预览 URL, 通过键入控制
getBoatUrl
限制
- 固定机型: CPU, 内存, 磁盘, GPU, 图像, 区域, 和任意的元数据选项被拒绝
- 预览 URL 仅为 HTTPS
- 快照保持磁盘变化,而不是处理内存;
/tmp除外 - 设置脚本在背景中运行, 因此准备状态并不意味着设置已完成
见 船舶提供者指南 详情和实例.
发展
现场测试,放 BOAT_API_KEY=boat_... 在仓库根中 .env git 忽略的文件。 测试时使用活船 API BOAT_API_KEY 已存在.
# Unit tests and real-SDK/local-HTTP transport tests; no cloud resources.
pnpm --filter @daohoangson/computesdk-boat test:unit
# Shared conformance, shared CRUD, and Boat-specific integration tests.
# BOAT_API_KEY in the environment or root .env enables live calls.
pnpm --filter @daohoangson/computesdk-boat test:integration
# All tests (also live when credentials are available).
pnpm --filter @daohoangson/computesdk-boat test
pnpm --filter @daohoangson/computesdk-boat typecheck
pnpm --filter @daohoangson/computesdk-boat lint
index.test.ts 用途 runProviderTestSuite 财务报告和审定财务报表 crud.test.ts 用途 runProviderCrudTest共享合同检查命令、文件系统、流程和互动进程;其基线测试使用共享的无证书模型。 CRUD和专船的集成测试在没有证书的情况下跳过. 不需要单独的活式选入旗.
unit.test.ts 使用 SDK 模拟; transport.test.ts 使用真实的"船"SDK来对抗本地的HTTP服务器. 分开 integration.test.ts 覆盖已签名的大文本/ 二进制传输,被保护/公用本地主机预览路由,并命名为快照还原. 测试文件按顺序运行,以避免同时出现账户-配额压力。 共享的相容性入口也空出沙盒开始停留在"船"的标准每分钟12起限下;下限的账户可能需要更慢的节奏.
Creditived runs 创建了多个可计费的小沙箱. 共用套房的钩子清理了它们的情况;专船测试试图清理两个沙盒,并在最后的块中进行命名的快照. 即使 root.env 包含一个密钥, 也可以运行每个没有云访问的套件, 使用 BOAT_API_KEY= pnpm --filter @daohoangson/computesdk-boat test。 。 。 .
许可证
麻省理工学院