glac は SDK と同じ API を呼び出します。コマンドはプラットフォームと同じく製品ごとにまとめられ(glac cube …、glac sandboxes …、glac drives …)、プロジェクトとアカウントは最上位にあります。ターミナルで作業する人、CI のスクリプト、コーディングエージェントという 3 種類のユーザーのために作られています。そのため、次のように動作します。
- デフォルトでは、求められたものだけを表示します(ID、表、コマンド自体の出力)。どのコマンドも
--jsonを受け付け、その場合は API が返したものを、エラーも含めてそのまま表示します。 glac run、glac sandboxes exec、glac sandboxes shellは、サンドボックス内のコマンドの終了コードで終了します。コマンド以外による失敗は 125 です。- エラー時は、API の
messageとcodeを stderr に出力します。 - 読むよう指示されていない入力を待つことはなく、削除するよう指示されていないものを削除することもありません。
インストール
glac は 1 つのファイル(macOS arm64 で 1.7 MB、Linux x86_64 で 2.3 MB)で、約 3 ミリ秒で起動します。次のコマンドでインストールします。
curl -fsSL https://glac.ai/install.sh | sh設定
glac は GLAC_API_URL と GLAC_API_KEY(SDK と同じ 2 つ)を読み、次に glac login が書き込むファイル(~/.config/glac/config.json、モード 0600。$XDG_CONFIG_HOME と GLAC_CONFIG で場所を変更可能)を読みます。どちらもなければ https://api.glac.ai に接続します。
glac login --api-url https://api.glac.ai --api-key - # reads the key from standard input1 つのサンドボックス用のトークン(st_…)も、そのサンドボックスに対する exec、cp、shell、url ではキーとして使えます。HTTPS には glac に組み込まれた Mozilla のルート証明書を使い、SSL_CERT_FILE で独自の証明書を追加できます。リダイレクトはたどらないため、キーがほかの場所へ送られることはありません。
コマンド一覧
glac deploy IMAGE … the same as glac cube deploy
glac run COMMAND … the same as glac sandboxes run
glac install APP … the same as glac installations create
glac cube deploy | ls | get | update | rm | versions | rollback | upgrade | upgrades | logs | log-usage | log-delete | metrics
glac cube instances create | ls | get | rm
glac cube instances ports ls | open | close
glac cube key-secrets create | ls | get | rm
glac cube keys sign
glac compose up | config | down | ps | logs | restart
glac deploys create | ls | get
glac sandboxes run | create | ls | get | update | rm | sleep | restart | exec | ps | logs | kill
| shell | cp | url | fork | restore | ssh
glac sandboxes snapshots create | ls | get | rename | rm
glac sandboxes ssh-keys add | ls | get | rm
glac sandboxes tokens revoke
glac sandboxes ports ls | open | close
glac browsers create | ls | get | update | sleep | rotate-url | live | save-profile | profiles ls | profiles rm | rm
glac drives create | ls | get | rename | rm | attach | detach | fork | restore
glac drives snapshots create | ls | get | rm
glac volumes create | ls | get | rm | attach | detach
glac backups ls | create | get | rm | restore
glac domains create | ls | get | update | rm
glac db create | ls | get | update | rm | sleep | wake | restore | roles | reset-password
glac db branches ls | get | create | rm
glac catalogue ls | get
glac installations create | ls | get | update | rm
glac project · glac variables put | ls | rm · glac secrets put | hosts | ls | rm · glac events · glac audit
glac webhooks create | ls | get | update | rm
glac keys create | ls | get | rm
glac destinations create | ls | get | update | test | rm
glac limits · glac limits request | requests
glac usage · glac account … · glac billing … · glac login · glac logout · glac versionどのグループも単数形で呼べます(glac sandbox、glac browser、glac drive、glac volume、glac backup、glac secret、glac variable、glac domain、glac database、glac installation、glac db branch、glac cube instance、glac sandboxes snapshot、glac sandboxes ssh-key、glac sandboxes token、glac sandboxes port、glac drives snapshot)。glac workers は glac cube と、glac sbx は glac sandboxes と同じで、たとえば glac sbx exec web ls は glac sandboxes exec web ls です。glac help はすべてのコマンドを製品ごとに一覧表示し、glac help sandboxes は 1 つのグループのコマンドを、glac help sandboxes exec は 1 つのコマンドが受け付けるものを表示します。オプションと列には API の名前を使うため、そこではキューブは app です。アプリ、サンドボックス、スナップショット、ドライブ、ボリューム、SSH キーは ID か名前で、アプリのバージョンは番号か ID で、ドライブのスナップショット(dsnap-…)とバックアップ(bak-…)は ID で指定します。
キューブ
キューブは、イメージをサービス(キューブ)として実行します。API ではこれをアプリと呼びます。glac workers …(または glac worker …)は glac cube … の別名です。
| コマンド | 内容 |
|---|---|
glac deploy IMAGE --name api --port 8080 |
イメージをアプリとしてデプロイし(アプリが既にあれば新しいバージョン)、準備ができるまで待ってアドレスを表示。--no-wait ならすぐに戻る。glac cube deploy も同じコマンド。Docker と同じ形式の --ulimit nofile=65535、--sysctl、--tmpfs、--dns、--dns-search、--dns-option、--shm-size はバージョンのランタイム設定で、どれか 1 つでも指定すると全体が置き換わる(glac cube update api --reset runtime で削除) |
glac cube ls, get, update, rm |
アプリ。update は、バージョンを構成するものを変更する場合に新しいバージョンをデプロイする。get はアプリが属するデータベースを示す(managed_by)。そのアプリの変更、デプロイ、削除はデータベースが行うため、update、deploy、rollback、rm は拒否される(managed_by_database) |
glac cube versions, rollback api [version] |
バージョン。トラフィックを別のバージョンに送る(バージョンを指定しなければ、現在より前で準備ができている最新のバージョンへ) |
glac cube update agent --suspend-after-ms 60000 --wake-daily-at 03:30 |
停止したインスタンスが、メモリを保存して本当にスリープするまで一時停止のままでいる時間(その間の次のリクエストには 1〜2 ミリ秒で応答)と、休止中のアプリのキー別インスタンスとステートフルなサービスのインスタンスを毎日復帰させる時刻(UTC)。アプリの scale の設定。glac deploy でも両方を指定でき、--reset suspend-after-ms と --reset wake-daily-at で元に戻し、glac cube get で表示する |
glac cube update agent --checkpoint 10 |
アプリのキー別インスタンスが稼働中に、指定した秒数の間隔(1〜600。on は 10)で取るチェックポイント。マシンが失われたとき、インスタンスはここからプロセスごと再開する。--reset checkpoint で解除し、glac deploy でも --checkpoint を指定できる。glac cube get は設定を、glac sandboxes get はインスタンスのチェックポイントの状況を表示する。チェックポイントを参照 |
glac cube upgrade api user-42 [--version N] [--when now|asleep] [--keep-days N] [--no-wait], glac cube upgrades api user-42 [UPGRADE] [--wait] |
キーのインスタンスを、アプリの別のバージョンへその場で移す(--version で番号か ID を指定しなければ、アプリの現在のバージョン)。ID、ノード、アドレス、トークン、専用のドライブはそのままで、ディスク、マシン、プロセスが新しいバージョンのものになり、切り替えの間、リクエストはエッジで保留される。終わるまで待ち、インスタンスのバージョンを表示する(--no-wait ならアップグレードの ID を表示)。失敗すると、インスタンスを元の状態に戻し、アップグレードのコードとともに終了コード 1 で終了する。upgrades はキーのアップグレードを一覧表示する(それぞれの種類、移行元と移行先のバージョン、リクエストが保留された時間、失敗した箇所)か、1 つを、リバートに必要なものとその保持期限とともに表示する(--wait で終わるまで待つ)。--when asleep なら、インスタンスがスリープするまで待ってから始めるため、リクエストは 1 つも保留されない。--keep-days(0〜365 日、デフォルト 7 日)は、リバートに必要なものを保持する日数。インスタンスとは別のドライブやボリュームをサービスがマウントするバージョンは拒否される(upgrade_not_here)。glac workers upgrade も同じ |
glac cube upgrades revert api user-42 UPGRADE [--keep-days N] [--no-wait], glac cube upgrades cancel api user-42 UPGRADE |
リバート:アップグレードが保持していたもの(アップグレード前のディスクとドライブ、移行元のバージョン)にインスタンスを戻す。アップグレードと同じく終わるまで待つ(戻り先がもう保持されていなければ rollback_gone)。cancel は待機中(インスタンスのスリープ待ち、またはバッチ内の順番待ち)のアップグレードを取り消す。始まったものは拒否される(upgrade_started)。取り消されたアップグレードを待っていた場合は、コード cancelled で待機が終わる |
glac cube upgrades batch api [--version N] [--from-version N]… [--key K]… [--when now|asleep] [--keep-days N] [--concurrency N] [--max-failures N] [--wait], glac cube upgrades batches api [BATCH] [--wait], glac cube upgrades stop api BATCH |
アプリの複数のキーを 1 つのバージョンへまとめてアップグレードするバッチ。それぞれインスタンスがスリープした時点で(--when now なら順番が来た時点で)、--concurrency で指定しなければ同時に 4 つ(1 つのノードでは 2 つ)ずつ行い、--max-failures で指定しなければ 5 回失敗した時点で止まる。batch はバッチの ID を表示する(--wait なら終わるまで待って表示し、失敗なしで完了しなければ終了コード 1)。batches はバッチを一覧表示するか、1 つをメンバーとともに表示する。stop は待機中のメンバーを取り消す。これらの単語と同じ名前のアプリは、glac cube upgrades では ID で指定する |
glac cube instances ports open api user-42 5432 --from 2001:db8::/32 |
キーのインスタンスが持つ専用のパブリック IPv6 アドレスで開いているポート(インスタンスがどこにあっても、アプリとキーで指定)。ls で一覧表示、open で指定した送信元(IPv6 のプレフィックスかアドレス。全員なら ::/0。UDP なら 5432/udp)に対してポートを開いて接続先を表示、close で閉じる。インスタンスはスリープや移動の後もポートを開いたままにするが、同じキーの新しいインスタンスには引き継がれない。専用のアドレスのないインスタンスは拒否される(no_ipv6)。キー別インスタンスを参照 |
glac cube logs api -f |
アプリのログ。--since、--until、--instance、--version、--kinds、--status、--method、--path、--request-id、--event、--stream、--contains を指定可能 |
glac cube log-usage, log-delete |
ログが日ごとに数えた量。指定時刻より前の行を削除 |
glac cube metrics api |
アプリを処理するマシンが計測した値。1 分ごとに 1 行(--by-hour なら 1 時間ごと。--from、--to):リクエスト、拒否されたリクエスト、ステータスのクラス別のリクエスト、p50 と p99、稼働中と停止中のインスタンス、復帰、作成されたインスタンス、CPU、メモリ。1 分ごとの値は 24 時間、1 時間ごとの値は 30 日間保持される |
glac cube key-secrets create api, ls, get api ID, rm; glac cube keys sign |
アプリのキーの署名に使うシークレット。create はシークレットを表示する(表示されるのはこのときだけ)。ls と get は先頭の数文字と作成日時を表示し、値は表示しない。署名付きキーを参照 |
glac compose up, config, down, ps, logs, restart |
Compose ファイルを、サービスごとに 1 つのアプリとして、ドライブとネットワークも含めてプロジェクトに取り込み、それによるデプロイを待つ。--remove-orphans はファイルにもうないサービスのアプリを削除し、--strict は無視されるはずのものを拒否し、-f - はファイルを標準入力から読む。ps はサービスとそれぞれの状態を一覧表示し、logs はそれらのログをまとめて表示し(-f で追跡)、restart は各サービスをそのまま再デプロイする。COMPOSE_FILE は Docker Compose と同じく、環境変数から、なければ .env ファイル(--env-file で指定したもの、または --project-directory かカレントディレクトリにあるもの)から読む。--build なら先にイメージをビルドしてプッシュする。サービスと Compose を参照 |
glac deploys create api=ghcr.io/acme/api:2 web, ls, get ID [--wait] |
プロジェクトのデプロイ(/v1/deploys):複数のサービスを、それぞれが待つものの順にまとめてデプロイし、まとめて切り替える。create は SERVICE(そのまま)か SERVICE=IMAGE、および -f FILE(JSON:名前ごとのサービスとそれぞれのバージョンのフィールド、または {"services": {…}})を受け付ける。デプロイを待ち(--no-wait なら待たない)、置き換わったデプロイがあればそれを追い、失敗すると、失敗したサービスとともに終了コード 1 で終了する。プロジェクトのデプロイを参照 |
サンドボックス
| コマンド | 例 | 内容 |
|---|---|---|
run |
glac run --image python:3.12 -- python3 -c 'print(6*7)' |
サンドボックスを作成し、コマンドを 1 つ実行して出力を逐次表示し、削除する。Ctrl-C で両方を終了。指定しなければ 300 秒。glac sandboxes run も同じコマンド |
create |
glac sandboxes create --name web --env STAGE=dev |
サンドボックスを作成し、ID を表示する。プライベートイメージには --image-pull-secret、ネットワークルールには --egress、ドライブには --drive data:/data(そのスナップショットを読み取り専用で使うなら data:/snap:dsnap-…。ボリュームなら --volume team:/team)、スリープ前のプログラムへの通知と、プログラムが稼働を延ばせる時間には --sleep-notice-ms と --sleep-hold-max-ms。起動時に始めるサービスには --start(イメージ自身の起動コマンド)か --start-command LINE を、--ready tcp:PORT、http:PORT/PATH、cmd:COMMAND とともに指定。マシンの名前とサービスの止め方には --hostname、--stop-signal、--stop-grace-ms。--project-network で最初からプロジェクトのプライベートネットワークにつなぐ。--volume team:/team:copy は、イメージのそのパスにあるものを新しいボリュームに入れる。glac run もこれらを受け付ける。--checkpoint 10(update でも可。off で解除)なら、稼働中にチェックポイントを取る |
create --init systemd |
glac sandboxes create --name box --init systemd |
システム全体:イメージ自身の systemd が PID 1 になる(--image を指定しなければ、systemd と OpenSSH 入りのプラットフォームの Ubuntu)。パッケージ、systemctl で起動するサービス、cron、ジャーナルが通常のマシンと同じように動き、専用のマシン ID を持ち、スリープ、復帰、移動を経ても保たれる。--start、--start-command、--ready とも、--snapshot とも併用できない。glac run でも指定でき、glac sandboxes get は init を表示する |
ls |
glac sandboxes ls --status running |
新しい順に一覧表示。-q なら ID のみ表示 |
get |
glac sandboxes get web |
状態、稼働している理由、設定と使用量、そして今日のディスク書き込み量と、全速で書き込める 1 日の割り当て量(disk_writes:チェックポイントのコピーも含む。割り当てを超えた場合は、ディスクが減速される期限。ディスクをオブジェクトストアにコピーしないノードでは -) |
update |
glac sandboxes update web --sleep-after-seconds never |
名前、環境変数、ラベル、公開ポート、アイドル時間、スリープ前の通知とホールドの上限、有効期限、ネットワークルール。create と update の --suspend-after-ms(default ならノードの設定)と --wake-daily-at HH:MM(none なら復帰しない)は、本当にスリープするまで一時停止したままでいる時間と、休止中に毎日復帰させる時刻(UTC)。glac sandboxes get はこれらと、起動コマンドの実行状況(start_command:マシン内で再起動された回数、最後の終わり方)を表示する。--on-expiry delete|sleep|hold は --expires-at の時刻が来たときの動作(削除(デフォルト)、スリープさせて保持、またはスリープさせてスリープのまま保持)、--held-asleep yes|no はスリープ中にリクエストで復帰させるかどうか(スリープのまま保持されている間、プレビューアドレスは 502 sandbox_paused を返し、API の呼び出しでは復帰する)。get は両方を表示する |
rm |
glac sandboxes rm web |
1 つ以上を削除 |
sleep |
glac sandboxes sleep web |
すぐにスリープさせる。復帰のコマンドはなく、サンドボックスを必要とする次のコマンドで復帰する |
restart |
glac sandboxes restart web |
ディスクから再起動する |
exec |
glac sandboxes exec web -- ls -la /srv |
コマンドを実行し、出力を逐次表示。--detach なら開始だけして ID を表示 |
ps, logs, kill |
glac sandboxes logs web exe-… --follow |
コマンドの一覧、1 つのコマンドの出力、コマンドとそれが起動したすべてのプロセスへのシグナル |
shell |
glac sandboxes shell web |
ターミナル。Enter の後に ~. で、動かしたまま抜ける。--join exe-… で戻る |
cp |
glac sandboxes cp -r ./src web:/srv/src |
どちらの方向にもファイルをコピー。- は標準入力または標準出力 |
url |
glac sandboxes url web 3000 |
ポートへのリンク。リンクを持つ人は誰でもそのポートを開ける |
tokens |
glac sandboxes tokens revoke web |
それまでにそのサンドボックス用に発行したトークンをすべて無効にする(401 invalid_token)。プレビューリンクや Cookie の中のトークン、SSH セッションが持つトークンも含む。その後に作ったトークンは有効。現在のトークンの世代を表示する。サンドボックスの後にトークン(ID の tok_…、またはトークンそのもの)を指定すると、そのトークンだけを、本来の期限まで無効にする。API キーが必要で、サンドボックスのトークンでは 403 needs_api_key、終了コード 3 |
snapshots |
glac sandboxes snapshots create web --name before-upgrade |
メモリ、プロセス、ディスクを今すぐ保存。ほかに ls、get、rename(--none で名前を外す)、rm。glac sandboxes create --snapshot でスナップショットから始める |
fork |
glac sandboxes fork web --count 3 |
この時点から続きを実行するコピー |
restore |
glac sandboxes restore web before-upgrade |
その場でスナップショットに戻す。戻す前の状態はスナップショットとして保持 |
ssh-keys, ssh |
glac sandboxes ssh web --gateway ssh.glac.ai |
公開鍵を登録(秘密鍵は不可)。サンドボックス用の ssh、scp、sftp のコマンドラインを表示 |
ports |
glac sandboxes ports open web 8080 --from 2001:db8::/32 |
サンドボックス専用のパブリック IPv6 アドレス(ある場合)で開いているポート。ls で一覧表示、open で指定した送信元(IPv6 のプレフィックスかアドレス。全員なら ::/0。UDP なら 53/udp)に対してポートを開いて接続先を表示、close で閉じる。受信はデフォルトで閉じている。create と update の --inbound PORT[/udp]=FROM[,FROM…] で一覧全体を指定し、get でアドレスと開いているポートを表示する。ネットワークを参照 |
コマンドの書き方:引数が 1 つなら sh -c に渡す 1 行(glac sandboxes exec web 'ls | wc -l')、複数ならプログラムとその引数で、そのまま実行されます。ターミナルでない標準入力は glac sandboxes exec に渡され(tar c . | glac sbx exec web tar x -C /srv)、--no-stdin で止められます。最初の Ctrl-C はコマンドに送られ、2 回目でコマンドを動かしたまま抜けます。コマンドは接続ではなくサンドボックスに属するため、glac sandboxes exec と glac sandboxes logs --follow は、接続が切れても中断したところから再開します。
コマンドの出力は最後の 16 MiB だけが保持され、コマンドが遅い読み手を待つことはありません。glac sandboxes exec は出力の一部を取りこぼすと、欠けた出力を渡すのではなく、どれだけ取りこぼしたかを示して 125 で終了します。大きな出力はファイルに書き出し、glac sandboxes cp で取り出してください。
ドライブ
ドライブは、使用するサンドボックスより長く残るプロジェクトのディスクです。一度に 1 つのサンドボックスが読み書き可能な状態で持ち、中身は次のサンドボックスのために残ります。次のサンドボックスは同じリージョンのもの、またはマシンがドライブのホームのオブジェクトストアを読める別のリージョンのものです(下記の glac drives home)。書き込まれるそばからリージョンのオブジェクトストアにコピーされるため、別のノード上のサンドボックスもマウントできます。課金されるのは書き込まれたものだけです。ドライブはコントロールプレーンの機能で、単独で動くノードに対して glac drives … を実行するとノードの 404(終了コード 4)が返り、そのノードのディスクはボリュームであると表示されます。
| コマンド | 内容 |
|---|---|
glac drives create --name data --size-bytes 10GiB --region eu |
ドライブを作成して ID を表示(vol-…。ドライブはボリュームでもある)。サイズは 4 KiB ブロックの整数倍で、最小 16MiB。指定しなければ 64GiB、無料プランでは 5GiB。--durability strict:ゲストの fsync は、それ以前のすべての書き込みがオブジェクトストアに届いてから戻る(指定しなければ standard。作成後は変わらない。書き込みの耐久性を参照) |
glac drives ls, get data, rename data data-2, rm data |
ドライブの一覧(それぞれの書き込み量と、持っているサンドボックス)、1 つのドライブの詳細、名前の変更(--no-name で名前なし)、削除。詳細には、唯一の書き込み元のノードと、フォークならフォーク元のドライブ(parent_drive_id)と系統の最初のドライブ(root_drive_id)、データベースのドライブならそのデータベース(managed_by:読み書き可能でマウントできるのはそのインスタンスだけで、ここでの名前の変更、復元、削除は managed_by_database で拒否される)が含まれる。削除は、サンドボックスが持っている間はできない(drive_attached)。スナップショットは、それも削除されるまで残り、課金される |
glac drives attach data web:/data, detach data web |
実行中のサンドボックスにドライブを読み書き可能ですぐにマウントする。また、外す(ファイルが開かれている間は --force)。新しいサンドボックスには glac sandboxes create --drive data:/data で、アプリの唯一のインスタンスには glac deploy … --drive data:/data で、キーを使うアプリのキーごとのインスタンスには --key-drive home:/home/app:10GiB で専用のドライブを付ける。--snapshot dsnap-… なら代わりにスナップショットの 1 つを読み取り専用でマウントし、glac drives detach dsnap-… web でそれを外す(ドライブの名前か ID を指定すると、読み書き可能なマウントだけを外す) |
glac drives snapshots create data --name before-upgrade |
ドライブの現在の状態を保持し、スナップショットの ID(dsnap-…)を表示する。スナップショットはオブジェクトストア内のドライブの 1 つのバージョンで、何もコピーされない。実行中のサンドボックスが持つドライブは、ゲストの書き込みを短時間止めて取る(最大 10 秒。超えると unavailable になるので再度要求する)。マシンを一時停止する(consistency は paused。停電時と同じ状態のドライブ)か、--fs-consistent なら先にファイルシステムを凍結する(frozen。サンドボックスのエージェントが凍結できなければ not_frozen)。実行中のサンドボックスが持っていないドライブは、そのまま取る(at_rest)。ほかに ls data(新しい順。それぞれの取り方、ドライブが保持していた量、単独で保持する量、バージョン。ドライブを指定しなければプロジェクトの全ドライブのスナップショット、--deleted true なら削除済みのドライブのものだけ)、get data dsnap-…、rm data dsnap-…。スナップショットはドライブより長く残り、ドライブの削除後もドライブの ID で一覧表示、読み取り、フォーク、マウントできる。ノードがオブジェクトストアに何もコピーしないコントロールプレーンには、スナップショットはない(not_copied) |
glac drives fork data --name data-try --from-snapshot dsnap-… |
スナップショットのバージョン(--from-snapshot を指定しなければドライブの現在の状態)を最初のバージョンとする新しいドライブを作り、ID を表示する。何もコピーされないため、すぐにマウントでき、ブロックは読み取られるのに合わせてオブジェクトストアから届く。プランのドライブ数の上限の対象(drive_limit_reached) |
glac drives restore data dsnap-… |
ドライブをスナップショットの状態に戻す。最新のバージョンの後に、スナップショットの内容を持つ新しいバージョンができる。その間のバージョンは、スナップショットかフォークが保持している限り残るため、古いスナップショットに戻した後に新しいスナップショットに戻すこともできる。ドライブの現在の内容は、スナップショットが保持しない限り残らないので、戻れるようにするには先にスナップショットを取る。サンドボックスがドライブを持っている間はできない(drive_attached)。先にデタッチする |
glac drives history data 3600, glac drives versions data [--at TIME], glac drives restore data --at TIME, glac drives fork data --at TIME |
ドライブのバージョンのウィンドウ(slice DB8):時刻を指定して、どこまで遡って復元またはフォークできるか。3600〜86400 秒(指定しなければなし。オフにすると、保持していたものは消える)。書き込みがあった 30 秒ごとに、ある時点のドライブであるバージョンが 1 つウィンドウに加わる。それらが単独で保持するものは、スナップショットと同じく課金される。時刻を指定した復元やフォークでは、その時刻以前の最新のバージョンが使われる。その時刻を指定してバージョンの一覧を呼び出すと、そのバージョンが示される。glac drives create --history SECONDS でウィンドウ付きのドライブを作り、history DRIVE off でオフにし、versions で一覧表示する(番号、時点、取得方法、単独で保持する量) |
glac drives create --cache-bytes 2GiB, glac drives cache data 512MiB, glac drives cache data all |
ドライブのキャッシュ:ノードが NVMe に保持するドライブの最大量。指定しなければ全量(ドライブのサイズ)。0 まで減らせ、それを超えた分はオブジェクトストアだけにあり、ゲストが読むとそこから読み取られる(最も長く読まれていないものから手放し、ストアにまだないものは手放さない)。キャッシュは、ドライブが保持するデータとは別に、埋まっている量に応じて 1 時間ごとに課金される。小さくすると、超えた分はストアが保持した時点で手放される(実行中のサンドボックスが全量キャッシュでマウントしたドライブでは、そのサンドボックスが次にスリープまたは停止した時点から)。大きくすると、それ以降にゲストが読んだものを保持する。API ではドライブをボリューム(/v1/volumes)と呼び、クライアントは /v1/drives でアクセスする(以前と同じように応答する)。glac drives get で表示される(全量か最大量か、そして現在の量) |
glac drives home data |
ドライブのホーム(slice D9)を、現在ドライブがあるリージョンへ、そこに移ってから 1 時間後ではなくすぐに移す。ドライブのホームとは、そのコピーを保持するオブジェクトストアのリージョンで、作成されたリージョンのこと。別のリージョンのサンドボックスも、そのリージョンのマシンがホームのストアを読める場合はマウントできる(読めなければ not_on_one_machine)。ゲストが読むとホームのストアから読み取られ、ゲストが書き込んだものは今いるリージョンのストアへ送られる。ホームは、そこに 1 時間いると追従するが、これを使えばすぐに移る。マシンが、ホームのストアに残っているものを自分のストアにコピーする。glac drives get は home と移動の進み具合(home_move:要求された日時と理由、コピー済みと残りのオブジェクト、最後に止まったときのエラー)を表示する。最大で 6 時間に 1 回(home_moved_recently)。ホームがすでに現在の場所にあるドライブでは home_here |
glac volumes create --name team --shared, ls, get, rm, attach team web:/team --read-only, detach |
ボリューム。ドライブの下にあるディスクで、移行のために残されている。共有ボリュームと、単独で動くノードのディスク |
glac backups create data --expires-in-days 7 |
ボリューム(ドライブも可)のバックアップを今すぐ取り、ID(bak-…)を表示する。この瞬間のボリュームのコピーをオブジェクトストアに置くもので、前回のバックアップ以降に変わったブロックだけを保持する。サンドボックスがマウントしている場合は、コピーのためにファイルシステムを凍結する(数ミリ秒)。ストアがすべてを受け取るまでは making、その後は ready で、それ以降はストアが保持する量に応じて、スリープ中のサンドボックスが保持するデータと同じ料金で課金され、期限が来ると削除される(ボリュームのルールの日数後。設定しなければ 30 日)。ほかに ls [--volume data](新しい順。それぞれを取った理由(manual、daily、before_version)、課金対象の量、削除すると減る量、共有している量。削除済みのボリュームのものも含む)、get、rm。オブジェクトストアに何もコピーしないマシンにはバックアップはなく(not_copied)、単独で動くノードにもない。バックアップはコントロールプレーンの機能。バックアップを参照 |
glac backups restore bak-… --name data-back |
準備ができたバックアップから新しいボリュームを作る(glac volumes create --from-backup bak-… と同じ)。サイズと種類はバックアップ元のボリュームと同じで、バックアップのリージョンに作られる。バックアップ全体を保持するまでは restoring、その後は ready で、それまではアタッチできない。配置先のマシンで復元できない場合は別のマシンでもう一度作られ、glac volumes get にそう表示される(restore_attempt が 2 になり、最初に失敗した理由も示される) |
スナップショットは、ドライブのリージョンのどのマシン上でも、いくつのサンドボックスからでも同時に読み取り専用でマウントできます。ドライブを誰が持っていても、ドライブが削除された後でも同じです。新しいサンドボックスには glac sandboxes create --drive data:/snap:dsnap-…(そこでの --snapshot は続きを始めるサンドボックスのスナップショットを指すため、:ro が --volume に付くのと同じように、ドライブのスナップショットは --drive に付けます)、実行中のサンドボックスには glac drives attach data web:/snap --snapshot dsnap-… を使います。ゲストはスナップショットに書き込めず、スナップショットをマウントしたサンドボックスは別のマシンに移されません。アプリのバージョンがドライブをマウントするのは、読み書き可能な場合だけです。
課金:スナップショットは、単独で保持する量(exclusive_bytes)に対して、1 時間ごとに、ドライブのデータの料金(1 GB-月あたり $0.02)で課金されます。フォークはほかのドライブと同じく、used_bytes、つまり論理的な内容全体で課金されます。10 GB のスナップショットのフォークは、10 GB のドライブとして課金されます。読み取り専用のマウントを通じてサンドボックスが読むものに料金はかかりません。glac usage --drive data は 1 つのドライブが保持した量、書き込まれた量、キャッシュ外から読まれた量を、glac usage --snapshot dsnap-… は 1 つのスナップショットが保持した量を表示します。
ドメイン
| コマンド | 内容 |
|---|---|
glac domains create api.example.com --app api |
アプリ(--app)またはサンドボックスのポート(--sandbox web --port 8080)に独自の名前を登録し、その名前の所有を証明するレコードを表示する。名前をここへ向ける役割も兼ねる CNAME か、TXT レコード。DNS にそのレコードが現れるまでは pending_verification で、現れた時点で証明書が発行される。--proxied false なら直接配信する(アドレス) |
glac domains ls [--app api] [--sandbox web], get, update, rm |
プロジェクトのドメインの一覧。名前か ID(dom-…)で指定した 1 つのドメイン(証明されるまではレコードも表示)。別のアプリ、サンドボックス、ポートへの変更、または --proxied。削除 |
ブラウザ
**未公開。**Glac のブラウザはまだ利用できません。以下は公開に先立つ、現時点でのコマンドラインです。
セッションは、Playwright、Puppeteer など任意の Chrome DevTools Protocol(CDP)クライアントから外部で操作する、Glac がホストする Chromium です。クライアントの接続中は稼働し、最後のクライアントが離れると数秒後に、ページを保持したままスリープします。
| コマンド | 内容 |
|---|---|
glac browsers create [--name NAME] [--headful | --kind KIND] [--region na|eu|ap] [--sleep-after S] [--connection-idle S] [--delete-after-idle S] [--metadata K=V] [--profile NAME [--save-profile]] [--proxy URL] |
稼働中のセッションを作成し、その CDP アドレスだけを表示する。Playwright の connectOverCDP や Puppeteer の browserURL に渡すもの。認証情報はアドレスに含まれる。既存のセッションの名前を指定すると、そのセッションがページとともに復帰して返される。--profile はセッションを返す前にプロファイル(Cookie、Local Storage、IndexedDB)を読み込み、--save-profile はセッションの削除時にプロファイルを保存し直す。--kind lightpanda は Lightpanda のセッションを作る。レイアウトエンジンなし(スクリーンショットはページのテキストのみ)、ライブビューなし、プロファイルなし。--proxy http://user:password@host:port:CONNECT を受け付ける自前の HTTP プロキシ。有料プランのみ。セッションのポート 80 と 443 への接続がそこを経由して送信され、認証情報はプラットフォームが保持する(自前のプロキシ)。実行前にサンドボックスが失敗したものはセッションにならず、作成は 503 session_failed で拒否される |
glac browsers get SESSION |
セッションの詳細:失敗した場合はその理由(failed:ブラウザが停止して戻らなかった。ノードが返した言葉のまま)、CDP アドレス、ページ(画面ありのセッションでは画面)をライブで見る場所、プロファイル、自前のプロキシ(アドレスとユーザー名。パスワードは含まない)とそれを双方向に通過した量、接続、時間の設定 |
glac browsers ls [--status S] [--kind K] [--name N] |
プロジェクトのセッションの一覧。アドレスは含まない(--status awake、asleep、unavailable、failed) |
glac browsers update SESSION …, sleep SESSION, rotate-url SESSION, rm [--no-save-profile] SESSION… |
時間、メタデータ、プロキシの変更(--proxy URL で別の自前のプロキシ、--no-proxy でなし。ブラウザはそのまま動き続ける)。すぐにスリープさせる(開いている接続は残り、その接続で復帰する)。新しいアドレスを発行し、新しい CDP アドレスを表示(古いアドレスは拒否され、それで入った接続は切断される)。セッションを終了(--save-profile で作成したセッションは、--no-save-profile を指定しない限り、先にプロファイルを保存) |
glac browsers live SESSION [--read-only] |
ページをブラウザでライブで見る場所を表示する。閲覧者のマウスとキーボードはページに届く。--read-only なら、ページに何も届かない専用のアドレスで、人に見せる用途向け。閲覧者がいる間、セッションは稼働し続ける |
glac browsers save-profile SESSION [PROFILE], profiles ls, profiles rm PROFILE… |
プロファイルを今すぐ、PROFILE(または作成時のプロファイル)の最新バージョンとして保存する。プラットフォームがプロジェクトのために保持し、ブラウザは再起動し、接続中のクライアントは接続し直す。プロジェクトのプロファイルの一覧。プロファイルの削除 |
CDP=$(glac browsers create --name agent-42)
npx @playwright/mcp --cdp-endpoint "$CDP" # or any CDP clientセッションは、ほかのインスタンスと同じく、使用したキューブのリソースで課金されます。処理している間の CPU、稼働中のメモリ、送信トラフィックです(料金とプラン)。glac usage は、セッションの使用量をそのサンドボックスと並べて表示します。
データベース
データベースはマネージド Postgres です。ドライブ上で動く専用の PostgreSQL で、何も要求がないときはスリープし、接続があればセッションを保ったまま復帰します。オーナーのパスワードは、作成とリセットに対する API のレスポンスにしか含まれず、どこにも保存されません。そのため create と reset-password はパスワード入りの接続文字列を表示し、ほかのコマンドは表示しません。
| コマンド | 内容 |
|---|---|
glac db create NAME [--version 16|17|18] [--region na|eu|ap] [--database NAME] [--vcpus N] [--memory SIZE] [--storage SIZE] [--durability strict|standard] [--sleep-after S] [--suspend-after S] [--wake-at HH:MM] [--tiering] [--metadata K=V] |
データベースを作成し、最初の起動(約 2 秒)を待ってから、オーナーのパスワード入りの接続文字列だけを表示する。psql、psycopg、node-postgres にそのまま渡せる。既存のデータベースの名前を指定すると、パスワードなしの接続文字列を表示し、その理由を stderr に出す。--suspend-after は、メモリを保存して本当にスリープするまで一時停止したままでいる時間で、その間の接続には 1〜2 ミリ秒で応答する(1〜86400 秒、デフォルト 300)。--wake-at は、休止中に毎日復帰させる時刻(UTC)(pg_cron のジョブは、いずれにせよそれぞれの時刻に復帰させる)。glac db get は両方を表示し、glac db update DATABASE --suspend-after SECONDS|default --wake-at HH:MM|none で全ブランチの値をまとめて変更する(default で 300 に戻し、none で復帰なし)。無料プランでは固定で、Neon の無料プランがゼロまでスケールするのと同じく、--sleep-after は 1(最後のクエリの 1 秒後に一時停止)、--suspend-after は 300(その 5 分後にスリープ)。ほかの値は拒否される。--tiering で階層型ストレージをオンにする(slice DB18:有料プランのみ)。後から glac db update DATABASE --tiering on|off でオン・オフを切り替え(階層化されたパーティションを持つブランチがある間、オフは拒否される)、glac db get で表示する |
glac db ls [--name N], glac db get DATABASE |
プロジェクトのデータベースの一覧(バージョン、ステータス、ルートブランチの状態とエンドポイント)。1 つのデータベースの詳細(パスワードなしの接続文字列、サイズ、ドライブ、アプリ、インスタンス) |
glac db sleep DATABASE [--branch B], glac db wake DATABASE [--branch B] |
ブランチ(main)をすぐにスリープさせる。メモリは保存され、復帰したときにはセッションもそのまま(接続でも復帰する)。すぐに復帰させる |
glac db reset-password DATABASE [--role ROLE] |
オーナー、またはログインする別のロール(--role。glac db roles が一覧表示するもの)の新しいパスワードを発行し、そのロールのパスワード入りの接続文字列だけを表示する。古いパスワードは次のログインから拒否されるが、開いている接続はそのまま。独自のブランチは、作成時のパスワードを保持する |
glac db roles DATABASE |
ルートブランチのログインするロール。PostgreSQL 自体から読み取る:オーナーと、作成したロール(CREATE ROLE … LOGIN)。プラットフォームのロールは含まない。そのためにルートブランチを復帰させる |
glac db rm [--no-final-snapshot] DATABASE… |
データベースをブランチごと削除する。--no-final-snapshot を指定しない限り、それぞれのドライブのスナップショットを 7 日間保持する |
glac db branches ls DATABASE, glac db branches get DATABASE BRANCH |
ブランチの一覧(最初に main、次に独自のブランチを古い順)と、そのうちの 1 つ |
glac db branch create DATABASE BRANCH [--parent B] [--expires-at TIME], glac db branches rm DATABASE BRANCH… |
独自のブランチ:親(--parent で別のものを指定しなければ main)の現在の状態を、何もコピーせずに引き継ぎ、プロジェクトのネットワーク上の DATABASE-BRANCH に専用の PostgreSQL、エンドポイント、ドライブを持つ。--expires-at を指定すると、その時刻に自動で削除される。create は最初の起動を待ち、API が返すとおりの接続文字列をパスワードなしで表示する。ロールとパスワードは親のものなので、オーナーはデータベースのパスワードでログインする。rm は PostgreSQL を止めてドライブを削除する。main(データベースとともに削除される)や、ほかのブランチの作成元になったブランチは削除できない |
glac db restore DATABASE --at TIME [--exact], glac db update DATABASE --history SECONDS, glac db branches create DATABASE BRANCH --at TIME [--exact], glac db create --history SECONDS |
履歴(slice DB8 と DB5):時刻を指定して、ルートブランチをどこまで遡って復元できるか、またはブランチを作れるか。指定しなければ 1 日。有料プランでは 0(なし)〜30 日、無料プランでは 1 日。復元はルートブランチをその場で戻す。分ちょうどの時刻やバージョン自体の時点なら、その時刻以前で最新の、ドライブのウィンドウのバージョンへ(書き込みがあった 30 秒ごとに 1 つ、最大 1 日分)。それより前や秒単位の時刻、または --exact を指定した場合は、WAL アーカイブによってその時点そのものへミリ秒単位で戻す(WAL をその時点まで再生する。数秒〜数分)。エンドポイント、接続文字列、オーナーのパスワードは変わらず、接続は切断され、復元前の状態は独自のブランチ main_old_<the restore's moment> として保持される。新しいバージョンが 5 分以内に応答しなければ取り消される(database_restore_failed)。時刻を指定したブランチは、代わりにその時点から作られる。履歴にない時刻は拒否される(invalid_history。ウィンドウとアーカイブがいつから遡れるかを示す)。秒単位の時刻(または --exact)はアーカイブから戻すか拒否され、その前のウィンドウのバージョンが使われることはない(invalid_history。アーカイブのストアがセグメントを拒否している間は、再試行可能な database_archive_unavailable)。拒否の際は、その時刻以前のウィンドウのバージョンが示される。ストアがブロックを返さない場合は拒否される(再試行可能な drive_unreadable)。glac db get はこれを表示し(history … s: restored to a time from … on)、WAL アーカイブの欠落もそれぞれ表示する(a gap in its WAL archive from … to …)。オブジェクトストアの障害が長引き、データベースを動かし続けるために WAL を手放した場合、その間の時刻はウィンドウだけから復元され、秒単位にはならない |
URI=$(glac db create shop) # the owner's password is in it
glac sandboxes create --name client --project-network --image postgres:17-alpine
glac sandboxes exec client -- psql "$URI" -c 'select 1' # on the project's network現在、データベースには、プロジェクトのネットワーク上で、そのサンドボックス(--project-network)とサービスから名前でアクセスします。パブリックアドレスはプラットフォームの公開入口の提供とともに用意され、API がそれを返す場合、create は代わりにそれを表示します(--private なら、何があってもプロジェクトのネットワーク上のアドレスを表示)。--json は API のレスポンスをそのまま表示します。パスワードが含まれるのは、作成とリセットのレスポンスだけです。
マネージドアプリケーション
カタログのアプリケーション(たとえば Rivet)は、プロジェクトに専用のキューブのリソースとしてインストールされます。アプリ、ボリューム、シークレット、バケットで、インストールのラベルが付き、変更はインストールを通じてのみ行い、それぞれのリソースとして課金されます(マネージドアプリケーション)。
| コマンド | 内容 |
|---|---|
glac catalogue ls |
カタログのアプリケーションの一覧(それぞれ最新バージョン):発行元(verified はプラットフォームがパッケージ化したもの)、ライセンス、概要 |
glac catalogue get APP [--version V] |
1 つのアプリケーションの詳細:バージョン、発行元、ライセンス、出力値。パラメーター(それぞれドット区切りの名前と、型、デフォルト値、範囲)。そして料金計算ツールのデフォルト値で、1 か月分がキューブの計測項目でどれだけになるか |
glac install APP [--name NAME] [--version V] [--region na|eu|ap] [--set KEY=VALUE]… [--parameters JSON] [--requires NAME=INSTALLATION]… [--no-wait] (glac installations create) |
インストールし、準備ができるまで待ち、進み具合を stderr に表示し、出力値(アドレスと、アクセスに使うもの。秘密の値はインストールのレスポンスに含まれる)とともに表示する。--set はパラメーターを指定する。値は JSON として読めれば JSON(2、true、null)、そうでなければテキストとして扱われ、ドット区切りの名前はオブジェクトのプロパティを指す(--set size.vcpus=2)。--parameters はパラメーターを 1 つの JSON オブジェクトで指定し(- なら標準入力)、--set がそれを上書きする。失敗した場合、コマンドは 1 で終了する |
glac installations ls [--app APP], glac installations get INSTALLATION |
プロジェクトのインストールの一覧(アプリケーション、バージョン、ステータス、リージョン)。1 つのインストールの詳細(アプリ、ボリューム、バケット、出力値。キーにプロジェクトの管理権限がなければ、秘密の出力値は (hidden)) |
glac installations update INSTALLATION [--version V] [--set KEY=VALUE]… [--parameters JSON] [--no-wait] |
別のバージョンへの変更、またはパラメーターのマージパッチによる変更(--set KEY=null でデフォルトに戻す)。インストールと同じく完了を待つ |
glac installations rm INSTALLATION… |
インストールを、それを構成するものすべてとともに削除し、それぞれの削除のレスポンスを表示する(deleted、または残りを削除中の deleting) |
glac catalogue get rivet
glac install rivet --set disk_gib=20 --set size.vcpus=2プロジェクト:シークレット、共有変数、イベント、監査ログ
| コマンド | 内容 |
|---|---|
glac project [--delete-after-idle-days 30|never] |
キーのプロジェクト:ID、名前、ホームリージョン、プライベートアドレス範囲、そしてスリープが何日続いたらサンドボックスを削除するか(オプションで先に設定できる) |
glac webhooks create https://example.com/hook --events sandbox.created,app.deployed |
プロジェクトのイベントを、署名付きで自前のアドレスへ送り、Webhook とそのシークレット(whsec_…。表示されるのはこのときだけ)を表示する。ls(それぞれの最後の配信結果)、get、update(--url、--events、--enabled)、rm。admin スコープを持つキーが必要 |
glac keys create --name ci --scopes read,exec |
プロジェクトの API キーを作成して表示する(表示されるのはこのときだけ。期限付きのキーには --expires-at。指定しなければ admin 以外のすべてのスコープ)。ls(先頭の数文字、スコープ、最後の使用。キーそのものは表示しない)、get、rm。admin スコープを持つキーが必要 |
glac limits [--sandbox web] [--set 50|none] |
プロジェクト(またはサンドボックス)の利用上限額、今月(暦月)の支出額、上限によって凍結されているかどうか。--set で先に設定する。単位は 1 か月あたりの米ドル(プロジェクトの上限は admin スコープを持つキーで設定) |
glac limits request vcpus 64 --why "a nightly batch of builds", glac limits requests [REQUEST] |
アカウントの申請による上限の引き上げを 1 つ申請する。名前で指定する上限(instances、vcpus、memory_bytes、sleeping、app_instances、creates_per_minute、creates_per_hour_per_project、app_creates_per_hour)、または volumes と volume_bytes(サイズ:2TiB)を、現在の値より大きく、用途を添えて申請する。オペレーターが承認または却下し、アカウントにはメールとイベントで通知される。requests は申請を回答とともに一覧表示するか、1 つを表示する(申請には admin を持つキーが必要) |
glac destinations create NAME --endpoint URL --headers FILE|- |
プロジェクトのアプリのログのエクスポート先(HTTP 経由の OTLP。--signals logs,metrics でメトリクスも、traces を含めるとリクエストのスパンも送り、スパンの送り先が別なら --traces-endpoint URL:トレース)。作成時にすぐ 1 件のレコードで試す。ls、get、update、test(すぐに 1 件送る。受け付けられなければ終了コード 1)、rm。ヘッダーの値は、ファイル、標準入力(1 行に 1 つの Name: value)、またはエコーなしのターミナル(--header NAME)から読み、コマンドラインからは読まない。値を表示するコマンドはない。作成、変更、テスト、削除には admin スコープを持つキーが必要。OpenTelemetry へのエクスポートを参照 |
glac variables put NAME VALUE, ls, rm |
プロジェクトの共有変数 |
glac secrets put NAME [file] --allowed-host HOST |
シークレットを保存する。値はファイル、標準入力(-)から読むか、エコーなしのターミナルで入力を求め、コマンドラインからは読まない。値を表示するコマンドはない |
glac secrets hosts NAME [host…], ls, rm |
シークレットの送信を許可する宛先。一覧。削除 |
glac events --type topup.failed |
プロジェクトのイベントの一覧。新しい順に、それぞれ短い説明付き(browser.failed:セッション、その種類、サンドボックスの失敗コード。database.history_gap:データベース、手放した WAL の開始時刻、ログ内の位置、セグメント数、オブジェクトストアの応答。database.history_resumed:アーカイブから再び復元できるようになった時刻。データベースの作成(リージョンとバージョン)または削除(保持されるドライブのスナップショット)。親から作られたブランチ、またはブランチの削除とその理由。ルートブランチのある時点への復元と、復元前の状態の保持先。WAL がアーカイブされていないこと(開始時刻、オブジェクトストアの応答、その間に復元で遡れる範囲)と、アーカイブの再開。その他のイベントは対象を示す:サンドボックス、アプリ、ドライブ、バックアップとそのボリューム、エクスポート先、デプロイ、キーとそのインスタンス、請求、撤回) |
glac audit --limit 50 |
プロジェクトの監査ログの 1 ページ分。新しい順:読み取り以外のすべての呼び出し(拒否されたものも含む)を、日時、実行者(名前で示すキー、サンドボックスのトークン、コンソールのユーザー、プラットフォーム、オペレーター)、メソッド、パス、ステータス、送信元とともに記録。オペレーターによるアプリのログの読み取りもすべて記録。admin スコープを持つキーが必要 |
アカウント、使用量、課金
| コマンド | 内容 |
|---|---|
glac usage --from 7d --group-by day,metadata.team |
1 時間ごとの帳簿による使用量:CPU 秒、メモリの GiB-秒、送信トラフィック、リクエスト、保存データを、指定どおりにグループ化(--group-by backup ならボリュームのバックアップごとに行と列)。--kind backup はボリュームのバックアップが保持した量だけ、--backup bak-… は 1 つのバックアップが保持した量を表示。サンドボックスの中で glac usage --here を実行すると、キーなしで自身の計測値を読める |
glac account |
アカウントの情報:今月の送信トラフィック、上限(caps)、キーのプロジェクトが保持するボリュームとドライブの、作成時に適用される数値での状況(keeps:上限に対する個数、1 つの最大サイズ、全体の合計サイズ、サイズを指定せずに作った場合のサイズ)、通知の送信先とその言語、未払い額、請求先住所、税番号。email_verified の行はアドレスがまだ確認されていないことを、email_undeliverable はそのアドレスへのメールが不達だったか迷惑メールとされたことを示す。どちらの場合も通知は保留される |
glac account email ops@example.com |
アカウントの通知の送信先。まだ確認されていないアドレスにはリンクがメールで送られ、リンクが開かれるまで通知は保留される。同じアドレスでも設定し直すと新しいリンクが送られ、不達の後なら、再びそのアドレスにメールが送られるようになる。none で送信先を外す。通知の送信先を参照 |
glac account language de |
アカウントの通知の言語:en、de、fr。auto で再び請求先住所に従う。撤回の受領通知と購入の確認はこの言語で書かれ、それ以外の通知はすべて英語 |
glac billing |
プラン、計測項目ごとの利用枠・使用量・残量、残高、今月これまでの状況、自動チャージと今月あと請求できる額、カード、信頼レベル |
glac billing topup 20 |
登録済みのカードで $20 分のクレジットを購入。--start-now は、すぐに受け取りたいという購入者の要求を伝える(下記) |
glac billing plan paid |
有料プランを契約。free なら、支払い済みの月の終わりにサブスクリプションを終了。--start-now を指定可能 |
glac billing auto-reload on --below 5 --reload 20 |
自動チャージ。glac billing spend-limit 50 で、1 か月に請求できる額の上限を設定。on は --start-now を指定可能 |
glac billing ledger, charges |
残高の台帳。カードへの請求 |
glac billing statement [2026-10] |
暦月(UTC)の明細。月を指定しなければ今月:計測項目ごとの行、プランに含まれていた量と各行の合計、その月の期間の区切りと料金、支払いに使ったクレジット、プロジェクトごとの使用量、データベースごとの行(使用量を定価で換算した額。履歴と階層化データは別記)、そして月末時点でアカウントが保持していたもの |
glac billing invoices, notices, withdrawals, withdraw CHARGE --name NAME [--email EMAIL] |
Stripe にある請求書とその PDF、アカウントに送られたメール、撤回できる購入と行った撤回、そして購入者自身による撤回の意思表示(すぐに受理される)。EEA または英国の消費者は、購入から 14 日以内であれば撤回できる。請求は返金され、チャージで残っているクレジットは回収され(自動チャージはオフになる)、プランの期間とサブスクリプションはそこで終わり、受領通知は EMAIL またはアカウントのアドレスに送られる。撤回には admin スコープを持つキーが必要 |
課金、シークレット、ドメイン、キーの変更には、admin スコープを持つキーが必要です。
**すぐに受け取る購入(--start-now)。**欧州経済領域または英国の消費者(確認済み、または確認中の税番号を持たないアカウント)は、購入から 14 日以内であれば撤回でき、購入したものがすぐに提供されるのは、本人が明示的に求めた場合だけです。glac billing topup、glac billing plan(購入するプラン:無料プランからの変更、または上位への変更)、glac billing auto-reload on(自動チャージがオンの間のすべての自動チャージ)に付ける --start-now は、その要求を、コンソールのチェックボックスの横に表示される文言(GET /v1/billing/withdrawals の right.start_now にもあるもの)で伝えます。
撤回できる 14 日間のうちに、この購入をすぐに提供するよう求めます。撤回した場合は、それまでに提供された分を支払います。チャージのクレジットをすべて使った時点で全額が提供されたことになり、それ以降は撤回できなくなることを理解しています。
サービスはすぐに始まります。14 日以内なら購入者はまだ撤回でき、その場合はそれまでに提供された分を支払います。すべてが提供されると(チャージのクレジットをすべて使うと)、撤回する権利はなくなります。この要求は、購入する本人が求めたときだけ指定してください。glac は、指定されない限り決して送りません。指定がなければ、そのようなアカウントの購入は API の 400 start_now_required になり、何も購入されません。そのとき、標準入力と標準エラー出力がどちらもターミナルであれば、glac は文言とその意味を表示して Do you ask for this? [y/N] と尋ね、y か yes の場合に限り、同じ呼び出しを要求付きで送り直します(チャージなら新しい冪等キーで)。それ以外の場所(スクリプト、CI、コーディングエージェント)では、また --json を付けた場合は常に、何も尋ねません。API のエラーと終了コード 1 に加え、--start-now で何が伝わるかを示す 1 行を表示します。エージェントが人に代わって要求を伝えることは決してありません。それは本人が伝えるものです。要求なしで自動チャージをオンにしたアカウントでは何もチャージされず、月に 1 回通知されます(イベント auto_reload.no_request。glac events が文章で表示します)。
終了コード
| コード | 意味 |
|---|---|
| 0 | 完了 |
| 1 | 失敗:API が拒否した(競合、誤ったリクエスト、購入者の要求のない購入:start_now_required)、ローカルファイルを読み書きできなかった、またはデプロイしたバージョンが立ち上がらなかった |
| 2 | コマンドラインの誤り |
| 3 | 許可されていない:キーがない、キーが誤っている、またはキーやユーザーに権限がない |
| 4 | 対象が存在しない |
| 5 | API に到達できない、または現在利用できない |
| 6 | アカウントに未払いがある:支払うまでは、請求の確認、支払い、保存しているものの一覧表示と削除しかできない |
| 125 | run、exec、shell で、コマンド以外による失敗(上記の 1、3、4、5、6、または出力を読み切れなかった場合) |
| その他 | run、exec、shell で、コマンド自身の終了コード |