メインコンテンツへスキップ
このページのすべての操作は、まず 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 を返します。アプリに Web ドメインがバインドされている場合は WebsiteApplication として返されます。.network を使用する前に、実行時に app.isWebsite() で型を絞り込んでください(Network を参照)。

アプリケーションのプロパティ

PropertyTypeDescription
idstringアプリケーション ID(24 桁の 16 進数)
namestring表示名
descriptionstring?squarecloud.app に記載された説明
urlstringWeb ダッシュボードの URL
ramnumber割り当てられた RAM(MB 単位)
clusterstringアプリが動作している Cluster
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

すべてのアプリケーションの概要ステータス

アプリごとに 1 リクエストを送るのを避けるには、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 分ごとに 1 つ)を返します。
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();