deploying-laravel-cloud について
Laravel Cloud CLI でデプロイやクラウドリソースを管理するためのスキルです。コマンドの確認、安全な非対話操作、デプロイ監視、リソース管理の手順を案内します。
主な機能
- 01Cloud リソースの CRUD 手順
- 02デプロイと ship の手順
- 03環境変数とシークレットの管理
- 04リモート PHP・シェルコマンド
- 05請求と使用量の照会
活用シーン
- 01新規または既存アプリのデプロイ
- 02データベース、キャッシュ、ストレージの構成
- 03暗号化シークレットの環境への紐付け
- 04Cloud 環境でのコマンド実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laravel/ agent-skills --skill deploying-laravel-cloudインストール後、Claude Code で/deploying-laravel-cloudを入力して読み込まれたか確認します。
同梱ファイルreference/checklists.md
詳細
Laravel Cloud CLI でのデプロイ
セットアップ
composer global require laravel/cloud-cli
cloud auth -n
cloud auth を実行するとブラウザーが開きます。ブラウザーを開けない場合は、環境変数に LARAVEL_CLOUD_TOKEN を設定してください。保存済みのトークンより優先され、ディスクには何も書き込みません。代わりにトークンを保存するには、cloud auth:token --add --token=<token> -n を実行するか、次のようにパイプで渡します:echo "$TOKEN" | cloud auth:token --add -n。
コマンド
コマンドは CRUD パターンに従います:resource:list、resource:get、resource:create、resource:update、resource:delete。
利用可能なリソース:application、environment、instance、database-cluster、database、cache、bucket、domain、websocket-cluster、background-process、secret、command、deployment。
一部のリソースには追加のコマンドがあります(例:domain:verify、database:open、instance:sizes、cache:types)。cloud -h で確認してください。
コマンドのシグネチャをハードコードしないでください。実行時にオプションを確認するには、必ず cloud <command> -h を実行してください。
CLI フラグ
すべてのコマンドに必ず -n を追加してください。CLI が応答しなくなるのを防ぎます。
-q や --silent は使用しないでください。すべての出力が抑制されます。
操作ごとのフラグの組み合わせ:
- 読み取り(
:list、:get)→--json -n - 作成(
:create)→--json -n - 更新(
:update)→--json -n --force - 削除(
:delete)→-n --force(--jsonなし) - 環境変数 →
-n --force - デプロイ/出荷 → すべてのオプションを明示的に指定して
-n(--jsonなし)
デプロイのワークフロー
タスクを特定し、該当する手順に従ってください。
初回デプロイですか? → cloud ship -n(cloud ship -h でオプションを確認してください)
既存のアプリですか? →
cloud deploy {app_name} {environment} -n --open
cloud deploy:monitor -n
環境変数ですか? → cloud environment:variables -n --force
シークレットですか? → echo "$VALUE" | cloud secret:create --name=NAME --json -n を実行し、続けて cloud environment-secret:attach を実行します。
インフラストラクチャをプロビジョニングしますか? → cloud <resource>:create --json -n
モノレポ(サブディレクトリ内にアプリがある)ですか? → cloud ship または cloud application:create に --root-directory=<subdir> を追加します。
カスタムドメインですか? → cloud domain:create --json -n を実行し、続けて cloud domain:verify -n を実行します。
複数ステップの操作については、reference/checklists.md を参照してください。
ユーザーが何を必要としているかわからない場合は、何かを実行する前にユーザーに確認してください。
コマンドが失敗した場合
- エラー出力を読みます
:list --json -nまたは:get --json -nでリソースの状態を確認します- 認証エラーですか? →
cloud auth -n - 問題を修正し、コマンドを再実行します
- 一度修正した後も同じエラーが繰り返される場合は、停止してユーザーに確認してください
デプロイのたびに、必ず cloud deploy:monitor -n を実行してください。失敗した場合は、修正を試みる前に問題の内容をユーザーに示してください。
サブエージェントへの委任
メインのコンテキストウィンドウを小さく保つため、出力の多い操作はサブエージェント(Task ツールを使用)に委任してください。戻ってくるのは要約のみです。詳細な出力はサブエージェントのコンテキスト内に残ります。
以下はサブエージェントに委任してください:
cloud deploy:monitor -n— デプロイログが非常に長くなる場合がありますcloud deployment:get --json -n— デプロイの詳細情報全体cloud <resource>:list --json -n— 多数のリソースを一覧表示すると、大量の JSON が生成されますWebFetchを使った https://cloud.laravel.com/docs/llms.txt からのドキュメント取得
以下はメインコンテキスト内で実行してください:
:create、:delete、:updateなどの短いコマンド — 出力が少量ですcloud deploy -n— デプロイ ID がすぐに必要です- 次のステップですぐに結果が必要なコマンド
ルール
次の手順を厳守してください:
- フラグの選択 — 上記の組み合わせを必ず使用します
- デプロイの順序 — デプロイしてから監視します。監視を省略してはいけません
- 破壊的なコマンド — 必ず事前にユーザーの確認を取り、コマンドを提示して承認を待ちます
- エラーへの対応 — 原因を特定して一度修正し、再び失敗した場合はユーザーに確認します
状況に応じて判断してください:
- インスタンスのサイズ、リージョン、クラスターの種類 — 指定がない場合はユーザーに確認します
- プロビジョニングするリソース — ユーザーの説明に基づいて判断します
- プロビジョニングの順序 — 厳密な順序はありません
- 出力の提示方法 — 状況に応じて要約、原文の提示、または項目の抽出を行います
シークレット
組織内で共有され、環境に紐付けられる暗号化された値です。CLI は値をローカルで暗号化するため、平文が API に送信されることはありません。
cloud secret:list --json -n
echo "$VALUE" | cloud secret:create --name=STRIPE_KEY --json -n
cloud environment-secret:attach {environment} {secretId} -n
cloud environment-secret:list {environment} --json -n
値はパイプで渡してください。--value= も使えますが、平文がシェル履歴とプロセス一覧に残ります。
secret:update、secret:delete、environment-secret:attach が受け取るのはシークレット ID であり、名前ではありません。名前は一意ではありません。ID は cloud secret:list --json -n で確認してください。
secret:get はなく、単一の環境からシークレットをデタッチする方法もありません。secret:delete はシークレットを削除し、すべての環境からデタッチします。
シークレットには PHP 拡張機能の sodium が必要です。ほかのコマンドでは必要ありません。
リモートアクセス
Tinker(>= v0.2.0)
Cloud 環境で PHP コードを直接実行します。
cloud tinker {environment} --code='Your PHP code here' --timeout=60 -n
--code— 実行する PHP コード(非対話モードでは必須)--timeout— 出力を待つ最大秒数(デフォルト:60)
コードは echo、dump などを使って明示的に結果を出力する必要があります。式だけでは何も出力されません。
対話型プロンプトを避けるため、必ず --code と -n を指定してください。
リモートコマンド
Cloud 環境でシェルコマンドを実行します。
cloud command:run {environment} --cmd='your command here' -n
--cmd— 実行するコマンド(非対話モードでは必須)--no-monitor— リアルタイムの出力ストリーミングをスキップします--copy-output— 出力をクリップボードにコピーします
過去のコマンドを確認します。
cloud command:list {environment} --json -n— コマンド履歴を一覧表示しますcloud command:get {commandId} --json -n— 特定のコマンドの詳細と出力を取得します
出力が長くなる可能性がある場合は、command:run をサブエージェントに委任してください。
請求と使用状況
現在の組織の請求と使用状況を確認します。
cloud usage --json -n
--period=current|previous|1|2|3— 請求期間(デフォルトはcurrent。1/2/3は過去 N 期間を示し、最大 3 です)。それ以外を指定するとエラーになります。--environment=<id>— 使用状況を単一の環境に絞り込みます--detailed— アプリケーション、リソース、アドオンごとの内訳を含めます--json— 機械可読形式で出力します(必ず-nと併用してください)
よく使うクエリ:
- 現在の支出:
cloud usage --json -n | jq '.currentSpendCents' - 先月の請求額:
cloud usage --period=previous --json -n - 1 つの環境の全内訳:
cloud usage --environment=<id> --detailed --json -n
すべての金額はセント単位です。すべての階層でキーは camelCase です(例:currentSpendCents、bandwidth.allowanceBytes、databases[].totalCents、applications[].totalCostCents)。
--detailed --json はサブエージェントに委任してください。ペイロードにはすべてのデータベース、キャッシュ、バケット、WebSocket、アプリケーションが含まれるため、大きくなる可能性があります。
設定
- 環境変数:
LARAVEL_CLOUD_TOKEN— API トークン。保存済みのトークンより優先されます(空の場合は未設定として扱われます) - グローバル:
~/.config/cloud/config.json— 認証トークンと設定 - リポジトリローカル:
.cloud/config.json— アプリケーションと環境のデフォルト設定(cloud repo:config {application} -nで設定) - CLI 引数は両方の設定ファイルより優先されます
repo:config にはアプリケーションを渡してください。渡さない場合、コマンドはアプリケーションを尋ねる必要があり、-n を指定していて組織に複数のアプリケーションがあると失敗します。デプロイコマンドではこれらのデフォルト設定は不要です。アプリケーションと環境を直接指定してください。
組織が複数ある場合、API トークンも複数保存されます。各コマンドは .cloud/config.json から organization_id を読み取り、使用するトークンを選択します。設定されていない場合、コマンドは失敗します。cloud repo:config {application} --organization=<id|name|slug> -n で設定してください。
LARAVEL_CLOUD_TOKEN に保持できるトークンは 1 つだけなので、組織は自動的に選択されます。--organization で別の組織を指定すると、トークンの組織にフォールバックせず失敗します。
ドキュメント
Laravel Cloud ドキュメント:https://cloud.laravel.com/docs/llms.txt
ユーザーから仕組みについて質問された場合、または Laravel Cloud の機能について説明を求められた場合は、上記 URL から WebFetch を使ってドキュメントを取得し、正確な回答に活用してください。
困ったときは
- 公式ドキュメントを取得するには、https://cloud.laravel.com/docs/llms.txt を参照してください
- コマンドのオプションを確認するには、
cloud <command> -hを実行してください - コマンドを確認するには、
cloud -hを実行してください