@ computesdk/ quirt
计算SDK的 Quit 提供者 .
这个包将计算SDK的沙盒接口映射到Quit的租户范围容器API上. 它支持容器生命周期,同步命令执行,发布HTTP/WebSocket服务, shell后背的文件系统操作,以及Quilt快照.
特征
- 创建、检查、列出并销毁Quilt 容器
- 通过 Quit 同步运行 shell 命令
/execAPI 密码 - 通过 Quilt 发布的服务, 曝光 HTTP 或 WebSocket URL
- 通过执行在容器文件系统内读取并写入文件
- 创建、 列出和删除 Quilt 快照
安装
npm install computesdk @computesdk/quilt
配置
提供者直接接受配置并倒回环境变量.
import { quilt } from '@computesdk/quilt';
const provider = quilt({
baseUrl: process.env.QUILT_BASE_URL,
apiKey: process.env.QUILT_API_KEY,
tenantId: process.env.QUILT_TENANT_ID,
});
支持的配置字段 :
baseUrl或者说QUILT_BASE_URL: Quilt后端基址apiKey或者说QUILT_API_KEY: Quit API 密钥accessToken或者说QUILT_ACCESS_TOKEN: JWT 支持的部署的手持证tenantId或者说QUILT_TENANT_ID: 快取操作需要image或者说QUILT_IMAGE: 默认容器图像,默认为prodtimeout或者说QUILT_TIMEOUT_MS: 以毫秒计的默认提供者超时publishedServiceAuthMode或者说QUILT_PUBLISHED_SERVICE_AUTH_MODE数字 :service_token或者说publicpublishedServiceTtlSecs或者说QUILT_PUBLISHED_SERVICE_TTL_SECS: 可选出版服务 TTLpollIntervalMs或者说QUILT_POLL_INTERVAL_MS: 同步运行的投票间隔
至少其中一个 apiKey 或者说 accessToken 必须配置.
使用量
import { compute } from 'computesdk';
import { quilt } from '@computesdk/quilt';
compute.setConfig({
provider: quilt({
baseUrl: process.env.QUILT_BASE_URL,
apiKey: process.env.QUILT_API_KEY,
tenantId: process.env.QUILT_TENANT_ID,
}),
});
const sandbox = await compute.instances.create({
name: 'computesdk-demo',
envs: {
APP_ENV: 'dev',
},
});
const result = await sandbox.runCommand('echo "hello from Quilt"');
console.log(result.stdout);
const url = await sandbox.getUrl({ port: 3000 });
console.log(url);
await sandbox.destroy();
抓图支持
快照操作需要 tenantId 因为 Quit 验证 X-Tenant-Id 在快照路线.
const snapshot = await provider.snapshot?.create(sandbox.instanceId, {
name: 'baseline',
metadata: { branch: 'main' },
});
限制
getUrl()映射到 Quilt 已发布服务, 所以只使用 HTTP/ WebSocket- 在 shell Exec上执行文件系统操作,以便跨Quilt 容器的可移动性
template操作没有被曝光,因为Quilt最接近的等同物是图像引用和快照,它们映射不同