メインコンテンツへスキップ
このページのすべての操作は rest.Rest クライアント上にあります:
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

アプリケーションの取得

api.GetApplication(appID) は、完全な squarecloud.Application レコードを返します。
app, err := api.GetApplication("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(app.ID, app.Name, app.Cluster, app.CreatedAt)

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

FieldTypeDescription
IDstringアプリケーション ID(24 文字の 16 進数)
Namestring表示名
Descriptionstring設定ファイルに記述された説明
Ownerstringオーナーのユーザー ID
Clusterstringアプリが稼働しているクラスター
RAMint割り当てられた RAM(MB)
Languagestringjavascript | typescript | python | java | elixir | go | rust | ruby | php | dotnet | static
Domain*stringデフォルトの <subdomain>.squareweb.app ホスト — ウェブアプリでない場合は nil
Custom*stringアプリに紐付けられたカスタムドメイン — 未設定の場合は nil
CreatedAtstring作成日
DomainCustom はポインタです — 参照解決の前に必ず nil チェックを行ってください:
if app.Domain != nil {
	fmt.Println("running at", *app.Domain)
}

アプリケーションステータスの取得

api.GetApplicationStatus(appID) は、人間が読みやすい形式の値でライブのランタイム状態を返します。
status, err := api.GetApplicationStatus("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(status.Status)  // "running" | "starting" | "restarting" | "exited" | "created" | "deleting"
fmt.Println(status.Running) // bool
fmt.Println(status.CPU)     // "0.50%"
fmt.Println(status.RAM)     // "120/512MB"
fmt.Println(status.Network) // フォーマット済みの合計値
fmt.Println(status.Storage) // 例: "0B"

if status.Uptime != nil {
	fmt.Println(time.UnixMilli(*status.Uptime)) // 起動時刻
}
Uptime は起動タイムスタンプを Unix ミリ秒で保持する *int64 です — アプリケーションが停止している場合は nil になります。

Raw ステータス

api.GetApplicationStatusRaw(appID) は同じエンドポイントを ?rawData=true 付きで呼び出し、フォーマット済み文字列の代わりに 数値 を返します — CPU/RAM は数値、ネットワークは [in, out] のバイトペアです。表示ではなく計算やグラフ描画をしたい場合に使用してください。
raw, err := api.GetApplicationStatusRaw("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(raw.CPU)     // 0.5
fmt.Println(raw.RAM)     // 120
fmt.Println(raw.Network) // { Total: [in, out], Now: [in, out] } 単位はバイト
フォーマット済みステータスは表示に便利です("120/512MB")。ダッシュボード、アラート、あるいは何らかの計算には raw ステータスを使ってください — フォーマット済み文字列を数値にパースし直すのは壊れやすい方法です。

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

アプリごとに 1 リクエストを送るのを避けるには、api.GetApplicationListStatus() を呼び出します:
list, err := api.GetApplicationListStatus()
if err != nil {
	panic(err)
}

for _, summary := range list {
	fmt.Printf("%s → running=%v\n", summary.ID, summary.Running)
}
CPU と RAM の数値は、現在稼働中のアプリケーションにのみ含まれます。

ログの取得

api.GetApplicationLogs(appID) は、最新のログ出力を返します。
logs, err := api.GetApplicationLogs("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(logs.Logs) // string

メトリクスの取得

api.GetApplicationMetrics(appID) は、直近 24 時間の CPU、RAM、ネットワークのサンプル(5 分ごとに 1 点、最大 288 ポイント)を []squarecloud.MetricPoint として返します。
metrics, err := api.GetApplicationMetrics("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(len(metrics), "data points")
for _, point := range metrics {
	fmt.Println(point.Date, point.CPU, point.RAM, point.Net)
}

ライフサイクル

api.PostApplicationSignal(appID, signal) は、アプリケーションを起動、停止、再起動します。シグナルは squarecloud.ApplicationSignal* 定数のいずれかです:
err := api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalStart)
if err != nil {
	panic(err)
}

// squarecloud.ApplicationSignalStop
// squarecloud.ApplicationSignalRestart

アプリケーションの削除

DeleteApplication はアプリケーションを完全に削除します。snapshot がない限り、データを 復元することはできません
err := api.DeleteApplication("abc123def456abc123def456")
if err != nil {
	panic(err)
}