跳转到主要内容
本页的每个操作都从获取一个 Application 实例开始:
import { SquareCloudAPI } from "@squarecloud/api";

const api = new SquareCloudAPI(process.env.SQUARE_API_KEY!);
const app = await api.applications.fetch("abc123def456abc123def456");
api.applications.fetch(id) 返回一个 Application。当应用绑定了网站域名时,它会作为 WebsiteApplication 返回 —— 在使用 .network 之前,先在运行时用 app.isWebsite() 细化类型(参见 Network)。

应用属性

属性类型描述
idstring应用 ID(24 位十六进制字符)
namestring显示名称
descriptionstring?来自 squarecloud.app 的描述
urlstringWeb 仪表盘 URL
ramnumber分配的 RAM(以 MB 为单位)
clusterstring应用运行所在的集群
languagestringjavascript | typescript | python | java | elixir | rust | go | php | dotnet | static
domainstring | null默认的 <subdomain>.squareweb.app 主机(非 web 应用为 null
customstring | null绑定到应用的自定义域名(如已配置)
createdAtDate创建日期
在 v4 中,当未设置自定义域名时,app.customnull(在 v3 中为 undefined)。

获取应用状态

app.getStatus() 返回一个 ApplicationStatus 实例,包含实时的运行时状态。
const status = await app.getStatus();

console.log(status.status);          // "running" | "starting" | "restarting" | "exited" | "created" | "deleting"
console.log(status.running);         // boolean
console.log(status.usage.cpu);       // "0.22%"
console.log(status.usage.ram);       // "70MB"
console.log(status.usage.network);   // { total: "0 KB ↑ 0 KB ↓", now: "0 KB ↑ 0 KB ↓" }
console.log(status.usage.storage);   // "0B"
console.log(status.uptime);          // Date | undefined
console.log(status.uptimeTimestamp); // number | undefined

所有应用的状态摘要

为避免每个应用一次请求,调用 api.applications.statusAll()
const list = await api.applications.statusAll();

for (const summary of list) {
    console.log(`${summary.applicationId} → running=${summary.running}`);
    if (summary.running) {
        console.log(`  cpu=${summary.usage.cpu}, ram=${summary.usage.ram}`);
    }

    // Promote a summary to the full status with .fetch()
    const full = await summary.fetch();
    console.log(full.uptime);
}

获取日志

app.getLogs()string 形式返回最近的日志输出。
const logs = await app.getLogs();
console.log(logs);

获取指标

app.getMetrics() 返回过去 24 小时的 CPU、RAM 和网络采样(最多 288 个数据点,每 5 分钟一个)。
const metrics = await app.getMetrics();

console.log(metrics.length, "data points");
console.log(metrics[0]);
// { timestamp: 1717084800000, cpu: 12.3, ram: 187, network: { ... } }
getMetrics() 要求应用至少分配了 512MB 的 RAM

实时事件流

app.realtime() 打开一个 Server-Sent Events 流。完整示例参见专门的 Realtime 页面。

生命周期

所有生命周期方法都解析为 boolean(成功时为 true)。
await app.start();
await app.restart();
await app.stop();

删除应用

app.delete() 会永久移除应用。除非你有 snapshot,否则数据无法恢复
const deleted = await app.delete();
console.log(deleted); // true | false

刷新应用数据

app.fetch() 从 API 重新获取应用,并返回一个全新的 Application 实例。当你怀疑缓存数据已过时时使用它。
const fresh = await app.fetch();