# Agent Lab ドキュメント > Agent Lab は Crescendo Lab の企業向け AI エージェントプラットフォームです。このドキュメントでは、Web ページやコンテナアプリのデプロイ、バージョンとアドレスの管理、スケジュールジョブの設定について説明します。 --- title: デプロイの概要 description: ファイルやソースコードをアップロードすると、Agent Lab がバージョンとしてビルドし、アドレスを付けて実行します。どのバージョンも保持されます。 url: https://agentlab.cresclab.com/docs/ja/deploy language: ja updated: 2026-10-06 --- # デプロイの概要 ファイルやソースコードをアップロードすると、Agent Lab がバージョンとしてビルドし、アドレスを付けて実行します。どのバージョンも保持されます。 ## デプロイできるもの - [静的サイト](https://agentlab.cresclab.com/docs/ja/deploy/static-site.md): ビルド済みの HTML、CSS、JavaScript(`dist/` の中身など)。サーバーは不要です。 - [コンテナアプリ](https://agentlab.cresclab.com/docs/ja/deploy/container-app.md): Dockerfile を含むソースコード。Webhook、API、シークレットを使う処理や他のサービスを呼び出す処理に使います。 - [AI ツールでデプロイ](https://agentlab.cresclab.com/docs/ja/deploy/ai-agent.md): MCP 経由で、Claude Code や Codex にアプリの作成、アップロード、公開を任せます。 ## 仕組み 1. **アプリを作成** 名前とアドレスラベルを決めます。ラベルはアプリのアドレスの一部になります。 2. **アップロード** アップロードした内容でアプリの種類が決まります。最上位に `index.html` があれば Web ページ、`Dockerfile` があればサービスです。 3. **ビルドとチェック** プラットフォームが新しいバージョンをビルドし、ファイル内のシークレット、個人情報、外部から読み込むスクリプトをスキャンします。コンテナアプリはイメージ内のパッケージの脆弱性もスキャンします。バージョンごとにプレビューアドレスがあります。 4. **公開** アプリの最初のバージョンは自動で公開されます。それ以降は、いつ公開するかをあなたが決めます。 5. **ロールバック** 新しいバージョンに問題があれば、前のバージョンを再び公開します。再ビルドは不要です。 ## 主な概念 | 用語 | 意味 | | ------------ | ---------------------------------------------------------------------------------- | | アプリ | デプロイするサイトまたはサービス。独自のアドレス、バージョン、設定を持ちます。 | | バージョン | 1 回のアップロードからビルドされたもの。上書きされることはありません。 | | 公開アドレス | 訪問者が開くアドレス。公開中のバージョンが表示されます。 | | 内部アドレス | 同じ組織のサービスだけが呼び出せるアドレス。 | | ブランチ | 同じアプリの別の環境。設定、シークレット、データベースはブランチごとに分かれます。 | 各言語の用語は[用語集](https://agentlab.cresclab.com/docs/ja/deploy/glossary.md)にまとめています。 ## Web ページかサービスか > [!WARNING] サーバーで動かす処理があれば、コンテナアプリとしてデプロイします > Webhook やフォームの受信、API キーの使用、サーバーから他のサービスの呼び出しなどが該当します。Web ページに入れた API キーは、すべての訪問者が読めます。 --- title: 静的サイトをデプロイする description: ビルド済みの Web ページを、HTTPS アドレス付きのサイトとしてデプロイします。 url: https://agentlab.cresclab.com/docs/ja/deploy/static-site language: ja updated: 2026-10-06 --- # 静的サイトをデプロイする ビルド済みの Web ページを、HTTPS アドレス付きのサイトとしてデプロイします。 ## 始める前に - ビルド済みのファイル(`npm run build` で作られる `dist/` など)。 - アプリを作成する権限。アプリを作成できるのは管理者だけです。 zip でアップロードする場合は、フォルダの中で圧縮して `index.html` を zip の最上位に置きます。 ```bash cd dist zip -r ../site.zip . ``` > [!WARNING] よくある間違い > `dist` フォルダごと圧縮すると、ページが `dist/index.html` になります。最上位に `index.html` がないバージョンは受け付けられません。 ## 1. アプリを作成する 1. **「デプロイ › アプリ」を開く** 「アプリを作成」を選びます。 2. **名前とアドレスラベルを入力する** 小文字の英字、数字、ハイフンが使えます。例:`launch-page` > [!NOTE] アドレスラベルは再利用されません > アプリを削除した後も、そのアドレスが他の組織に割り当てられることはありません。作成前に綴りを確認してください。 ## 2. アップロードする **コンソール** アプリの「デプロイ」タブで、フォルダ、`.zip`、`index.html` のいずれかをアップロード領域にドロップするか選択し、「アップロードしてビルド」を選びます。 プラットフォームが新しいバージョンをビルドし、公開の前にファイル内のシークレットや個人情報をスキャンします。 **AI ツール** Agent Lab MCP に接続した AI ツールで、次のように入力します。 ```prompt dist/ を Agent Lab のアプリ launch-page にデプロイして。先にプレビューアドレスを見せて、私が OK するまで公開しないで。 ``` 設定方法は [AI ツールでデプロイ](https://agentlab.cresclab.com/docs/ja/deploy/ai-agent.md)をご覧ください。 ## 3. 公開する アプリの最初のバージョンは、ビルドが成功すると自動で公開されます。訪問者は公開アドレスで見られます。 ```text https://launch-page--acme.hosting.agentlab.run ``` 2 つ目以降のバージョンは自動では公開されません。バージョンのプレビューアドレスで確認してから、「デプロイ」タブで「公開」を選びます。 ## 次のステップ - [バージョン、公開、ロールバック](https://agentlab.cresclab.com/docs/ja/deploy/versions.md) - [アドレスとアクセス](https://agentlab.cresclab.com/docs/ja/deploy/addresses.md):限られた人だけに見せる場合は、アプリをパスワード付きの非公開にします。 --- title: Dockerfile からアプリをデプロイする description: Dockerfile を含むソースコードから、Webhook、API、エージェント用ツールなど常時稼働するサービスをデプロイします。 url: https://agentlab.cresclab.com/docs/ja/deploy/container-app language: ja updated: 2026-10-06 --- # Dockerfile からアプリをデプロイする Dockerfile を含むソースコードから、Webhook、API、エージェント用ツールなど常時稼働するサービスをデプロイします。 ## 始める前に - HTTP リクエストに応答するプログラム。 - プロジェクトの最上位にある `Dockerfile`。 ## 1. Dockerfile を書く 次の Node.js の例では、サーバーが `$PORT` で待ち受け、イメージはポートを 1 つだけ `EXPOSE` し、root 以外のユーザーで実行します。 ```dockerfile Dockerfile FROM node:22-slim WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev COPY . . USER node EXPOSE 8080 CMD ["node", "server.js"] ``` ```js server.js import { createServer } from "node:http"; const port = Number(process.env.PORT ?? 8080); createServer((req, res) => { res.writeHead(200, { "content-type": "application/json" }); res.end(JSON.stringify({ ok: true, path: req.url })); }).listen(port); ``` イメージは次の条件を満たす必要があります。すべてのルールは[コンテナ実行契約](https://agentlab.cresclab.com/docs/ja/deploy/runtime-contract.md)にあります。 - `CMD` または `ENTRYPOINT` でサーバーを起動する。 - `$PORT` で HTTP を提供する。 - `linux/amd64` 向けにビルドする。 - `/tmp` 以外のファイルシステムは読み取り専用。 ## 2. ソースをアップロードする アプリの「デプロイ」タブで、ソースのフォルダか `.zip` をアップロード領域にドロップし、「アップロードしてビルド」を選びます。`Dockerfile` は最上位に置きます。zip を自分で作る場合は、`node_modules`、`.git`、`.env` を除外します。 ```bash zip -r ../app.zip . -x 'node_modules/*' '.git/*' '.env*' ``` プラットフォームはイメージをビルドし、脆弱性とシークレットをスキャンして、実行契約に沿っているかを確認します。自動で調整した点は、バージョンのページにお知らせとして表示されます(例:「イメージが root で実行されるため、uid 10001 で実行します」)。 > [!NOTE] イメージがすでにある場合 > 組織のイメージレジストリにプッシュし、「新しいバージョンのデプロイ元」で「イメージ」を選ぶと、そのイメージからバージョンを作れます。 ## 3. 公開して実行状態を確認する アプリの最初のバージョンは、ビルドが成功すると自動で公開されます。2 つ目以降は「デプロイ」タブで「公開」を選びます。 「実行」タブには、配信中のバージョンと準備完了のインスタンス数が表示されます。 > [!WARNING] バージョンがいつまでも準備完了にならない > 多くはポートが原因で、プラットフォームが指定したポートでサーバーが待ち受けていません。対処は[デプロイのトラブルシューティング](https://agentlab.cresclab.com/docs/ja/deploy/troubleshooting.md#not-ready)をご覧ください。 ## 4. シークレットを追加する API キーなどの機密値はアプリの「設定」で入力し、コードからは環境変数として読み取ります。保存した設定はサービスの再起動で反映され、新しいインスタンスの準備ができるまでは古いインスタンスが配信を続けます。詳しくは[アプリの設定](https://agentlab.cresclab.com/docs/ja/deploy/app-settings.md#secrets)をご覧ください。 > [!WARNING] ソースコードにシークレットを含めない > イメージ内でキーが見つかった場合は、ソースから取り除いてアプリのシークレットに設定し、キーを新しいものに交換してください。 --- title: AI ツールでデプロイする description: Claude Code、Codex など MCP 対応の AI ツールに、アプリの作成、アップロード、公開を任せます。ブラウザでのサインインは 1 回だけです。 url: https://agentlab.cresclab.com/docs/ja/deploy/ai-agent language: ja updated: 2026-10-06 --- # AI ツールでデプロイする Claude Code、Codex など MCP 対応の AI ツールに、アプリの作成、アップロード、公開を任せます。ブラウザでのサインインは 1 回だけです。 ## 1. Agent Lab MCP に接続する ターミナルで、使っているツールのコマンドを実行します。`acme` は組織名に置き換えてください。コンソールの「MCP」ページには組織名入りのコマンドが表示されます。 **Claude Code** ```bash claude mcp add --transport http agentlab-acme https://api.agentlab.cresclab.com/v1/mcp ``` **Codex** ```bash codex mcp add agentlab-acme --url https://api.agentlab.cresclab.com/v1/mcp codex mcp login agentlab-acme ``` **その他の MCP クライアント** 次の URL を HTTP タイプの MCP サーバーとして追加します。 ```text https://api.agentlab.cresclab.com/v1/mcp ``` ブラウザでサインインページが開きます。サインインして組織を選ぶと接続が完了します。 > [!NOTE] パスワード、トークン、API キーは不要です > 認可はブラウザで行います。この接続でできることは、あなたがコンソールでできることと同じで、それ以上はありません。 ## 2. デプロイを依頼する プロジェクトのフォルダで、デプロイガイドを読んで手順どおりに進めるよう依頼します。 ```prompt https://app.agentlab.cresclab.com/agent/deploy.md を読み、その手順に従って、このフォルダを Agent Lab の組織 acme にデプロイしてください。 ``` このドキュメントを調べてもらうときは、ページの Markdown アドレスか、目次 `https://agentlab.cresclab.com/docs/ja/llms.txt` を渡します。MCP サーバーの `docs_read` ツールでも同じページを読めます。 ## 3. AI ツールが行うこと 1. **アプリを探す、または作成する** ラベルは再利用できないため、作成前にアドレスラベルを確認します。 2. **アップロードする** プラットフォームが指定した宛先に zip を直接アップロードします。ファイルは会話を経由しません。 3. **ビルドを待つ** ビルドが成功するか失敗するまで、バージョンの状態を確認します。 4. **公開の前に確認する** どのバージョンを公開するかを伝え、あなたの同意を待ちます。 > [!NOTE] シークレットは自分で入力します > AI ツールは入力場所を案内しますが、シークレットを会話に貼るよう求めることはありません。 ツールの一覧は [MCP ツール](https://agentlab.cresclab.com/docs/ja/deploy/mcp-tools.md)をご覧ください。 --- title: バージョン、公開、ロールバック description: アップロードのたびに新しいバージョンが作られます。バージョンは上書きされず、ビルドに成功したバージョンなら新旧を問わず公開できます。 url: https://agentlab.cresclab.com/docs/ja/deploy/versions language: ja updated: 2026-10-06 --- # バージョン、公開、ロールバック アップロードのたびに新しいバージョンが作られます。バージョンは上書きされず、ビルドに成功したバージョンなら新旧を問わず公開できます。 ## ビルドの段階 アップロード後、バージョンは次の段階を順に進みます。「デプロイ」タブのバージョンの行に、現在の段階が表示されます。 | 段階 | プラットフォームの処理 | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | キュー待ち | ビルドマシンを待っています。前に何件あるかが表示されます。 | | ビルド中 | Web ページまたはコンテナイメージをビルドしています。 | | スキャン中 | シークレット、個人情報、外部から読み込むスクリプトを確認しています。コンテナイメージは脆弱性とシークレットもスキャンします。 | | レビュー中 | スキャン結果をまとめています。 | | 確認待ち | 「先に確認する」に設定されたチェックで問題が見つかりました。結果を読んだうえで、そのまま公開できます。 | | 成功 | 公開できます。 | | 失敗 | 内容が受け付けられなかったか、プラットフォームでエラーが起きました。[デプロイのトラブルシューティング](https://agentlab.cresclab.com/docs/ja/deploy/troubleshooting.md)をご覧ください。 | 各チェックの扱いは、バージョンのチェック結果に「デプロイを止める」「先に確認する」「実行しない」のいずれかで表示されます。 ## 公開する アプリの最初のバージョンは、ビルドが成功すると自動で公開されます。2 つ目以降は、「デプロイ」タブでバージョンの行の「公開」を選びます。訪問者には 1 分以内に新しいバージョンが表示されます。 公開する前に、そのバージョンのプレビューアドレスで確認してください。どのバージョンが公開中でも、各バージョンのプレビューアドレスは開けます。 ## ロールバックする 新しいバージョンに問題があれば、一覧で以前のバージョンを探して「このバージョンに戻す」を選びます。公開と同じ操作で、再アップロードも再ビルドも行いません。 > [!NOTE] 内部呼び出しも切り替わります > 他のアプリが内部アドレスでこのアプリを呼び出すと、公開中のバージョンに届きます。公開やロールバックをすると、呼び出し先も変わります。 ## ブランチ アプリに複数のブランチがある場合、すべての操作は今いるブランチに対して行われます。アップロードボタンは「アップロードして ‹ブランチ› で公開」になり、公開もそのブランチだけに影響します。設定とシークレットはブランチごとに分かれます。 ブランチで公開する前に、プラットフォームはそのブランチの変数名とシークレット名を比較し、足りないものがあれば知らせます。 --- title: アドレスとアクセス description: 各アプリには公開アドレス、バージョンごとのプレビューアドレス、内部アドレスがあります。公開のままにするか、パスワードで保護できます。 url: https://agentlab.cresclab.com/docs/ja/deploy/addresses language: ja updated: 2026-10-06 --- # アドレスとアクセス 各アプリには公開アドレス、バージョンごとのプレビューアドレス、内部アドレスがあります。公開のままにするか、パスワードで保護できます。 ## 3 種類のアドレス アドレスはアドレスラベルと組織名で構成され、すべて HTTPS です。 | アドレス | 開ける人 | 例 | | ------------------------------ | ------------------------------------------------------ | ------------------------------------------------------- | | 公開アドレス | 誰でも。非公開アプリはパスワードが必要 | `https://order-api--acme.hosting.agentlab.run` | | バージョンのプレビューアドレス | アドレスを知っている人。非公開アプリはパスワードが必要 | バージョンごとに 1 つ。バージョンの横に表示 | | 内部アドレス | 同じ組織のアプリだけ。ブラウザでは開けません | `https://order-api--acme.internal-hosting.agentlab.run` | ## アドレスラベル アドレスラベルはアプリの作成時に決めます。小文字の英字、数字、ハイフンが使えます。一度使ったラベルは組織に保持され、アプリを完全に削除しても他の誰かに割り当てられることはありません。 ## 公開か非公開か アプリの「設定」でアクセスを選びます。 | 選択肢 | 動作 | | ------ | ------------------------------------------------------------------------------------------------------------------ | | 公開 | アドレスを知っている人なら誰でも閲覧できます。 | | 非公開 | アプリのすべてのアドレス(公開アドレスと各バージョンのプレビューアドレス)で、まずパスワードページが表示されます。 | パスワードはコンソールで生成され、一度だけ表示されます。紛失した場合は再生成してください。 > [!NOTE] 非公開アプリは CDN を経由しません > 少人数のレビューには十分ですが、大量のトラフィックには向きません。 ## 別のアプリから呼び出す 同じ組織のアプリどうしは、内部アドレスで呼び出します。 - 呼び出せるのは、プラットフォーム内にある自組織のアプリだけです。他の組織、ビルド、インターネットからは呼び出せません。 - 証明書は公的に信頼されたものなので、標準の HTTP クライアントで追加設定なしに使えます。 - 呼び出しは公開中のバージョンに届きます。 - 内部アドレスにはパスワードページがありません。保護が必要なエンドポイントはコード側で確認してください。 内部アドレスに届いたリクエストには、送信元アプリのアドレスラベルを示す `X-Franky-Caller-App` ヘッダーが付きます。`Host` が内部ドメインのときだけ信頼してください。 ```js server.js const internal = req.headers.host?.endsWith(".internal-hosting.agentlab.run"); const caller = internal ? req.headers["x-franky-caller-app"] : undefined; if (req.url.startsWith("/admin") && caller !== "billing-worker") { res.writeHead(403).end(); return; } ``` --- title: アプリの設定 description: アプリの「設定」で、ポート、シークレット、アクセスを変更したり、アプリを一時停止・削除したりします。 url: https://agentlab.cresclab.com/docs/ja/deploy/app-settings language: ja updated: 2026-10-06 --- # アプリの設定 アプリの「設定」で、ポート、シークレット、アクセスを変更したり、アプリを一時停止・削除したりします。 ## ポート プラットフォームは次の順でコンテナアプリのポートを決め、環境変数 `PORT` でプログラムに渡します。 1. 「設定 › 実行設定 › ポート」に値があれば、それを使います。 2. なければ、イメージが `EXPOSE` している 1 つの TCP ポートを使います。 3. どちらもなければ `8080` を使います。 ## シークレット シークレットは API キーやトークンなどの機密値です。コンソールで入力し、コードからは環境変数として読み取ります。シークレットはブランチごとに分かれます。 > [!WARNING] シークレットはコンソールでのみ入力します > ファイルやコマンドに書いたり、AI ツールとの会話に貼ったりしないでください。 ## 設定を反映する 実行設定を保存しても、動いているサービスはすぐには変わりません。概要に設定が変わったことが表示されたら、「サービスを再起動」を選んで反映します。新しいインスタンスの準備ができるまでは、古いインスタンスが配信を続けます。 ## 一時停止、削除、完全削除 | 操作 | どうなるか | 元に戻せるか | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | | アプリを一時停止 | アプリがオフラインになり、訪問者には中立的なページが表示されます。内容はすべて保持され、停止中は新しいバージョンをデプロイできません。 | はい。「アプリを再開」を選びます。 | | アプリを削除 | アプリはすぐにオフラインになり、7 日間の猶予期間が始まります。 | 7 日以内なら復元できます。その後バージョンは削除されます。 | | 完全に削除 | すべてのバージョンとアドレスがすぐに削除されます。アプリ名を入力して確定します。 | いいえ。アドレスが他の誰かに割り当てられることもありません。 | --- title: コンテナ実行契約 description: コンテナアプリのイメージが従うルールです。プラットフォームで調整できる点は自動で調整し、バージョンのページにお知らせを残します。 url: https://agentlab.cresclab.com/docs/ja/deploy/runtime-contract language: ja updated: 2026-10-06 --- # コンテナ実行契約 コンテナアプリのイメージが従うルールです。プラットフォームで調整できる点は自動で調整し、バージョンのページにお知らせを残します。 ## ルール | 項目 | 要件 | 満たさない場合 | | ------------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | 起動コマンド | `CMD` または `ENTRYPOINT` が必要です。 | バージョンは受け付けられません。 | | ポート | `$PORT` で HTTP を提供します。 | 設定 → `EXPOSE` → 8080 の順に決まります。[アプリの設定](https://agentlab.cresclab.com/docs/ja/deploy/app-settings.md#port)をご覧ください。 | | プラットフォーム | `linux/amd64`。 | 他のプラットフォームのイメージはプッシュ時に拒否されます。 | | ユーザー | root 以外の `USER` を推奨します。 | root または未指定の場合は uid 10001、グループ 0 で実行します。イメージにないユーザーを指定したバージョンは受け付けられません。 | | ファイルシステム | `/tmp` 以外は読み取り専用です。 | 他の場所への書き込みは失敗します。 | | クラウドの認証情報 | 提供されません。 | 外部サービスにはアプリのシークレットを使って接続します。 | uid 10001 で実行される場合、イメージが読むファイルはグループ 0 から読める必要があります。 ## お知らせ プラットフォームが調整した内容は、バージョンのページとイメージの「チェック」タブにお知らせとして表示されます。AI ツールはデプロイの状態から同じコードを読み取れます。 | コード | 意味 | 対応 | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | `imageUserForced` | イメージが root で実行されるため、uid 10001 で実行します。 | 不要です。お知らせを消すには、Dockerfile で root 以外の `USER` を設定します。 | | `imagePortFromExpose` | アプリはイメージが `EXPOSE` している 1 つのポートで待ち受けます。 | 不要です。 | | `imagePortsAmbiguous` | イメージが複数のポートを `EXPOSE` していて 8080 がないため 8080 で実行しますが、サーバーの待ち受けポートではない可能性が高いです。 | 「設定 › 実行設定 › ポート」で正しいポートを選んでサービスを再起動するか、Dockerfile でそのポートだけを `EXPOSE` します。 | ## 起動時にファイルを書き込むイメージ 起動時に `/tmp` 以外へ書き込むイメージがあります。たとえば `nginx:alpine` は `/var/cache/nginx` に書き込むため、読み取り専用のファイルシステムでは起動に失敗します。書き込みが不要なイメージを使うか、書き込み先を `/tmp` に変えてください。 ```dockerfile Dockerfile FROM nginxinc/nginx-unprivileged:alpine COPY dist/ /usr/share/nginx/html/ ``` > [!TIP] 静的ファイルを配信するだけなら > [静的サイトとしてデプロイ](https://agentlab.cresclab.com/docs/ja/deploy/static-site.md)してください。nginx を自分で動かす必要はありません。 --- title: スケジュールジョブ description: スケジュールジョブは、Google Cloud Scheduler のように、決まった時刻に組織のアプリへ HTTP 呼び出しを 1 回行います。 url: https://agentlab.cresclab.com/docs/ja/deploy/scheduled-jobs language: ja updated: 2026-10-06 --- # スケジュールジョブ スケジュールジョブは、Google Cloud Scheduler のように、決まった時刻に組織のアプリへ HTTP 呼び出しを 1 回行います。 ## ジョブの構成 呼び出しは、その時点で公開中のバージョンに届きます。 | 項目 | 説明 | | ------------ | ------------------------------------------------------------------------------------------------------------- | | アプリ | 呼び出すコンテナアプリ。 | | パス | アプリのアドレスの後ろに付けます。`/` で始まり、クエリ文字列も使えます。例:`/tasks/daily` | | メソッド | `GET`、`POST`、`PUT`、`PATCH`、`DELETE`。既定は `POST` です。本文を送るのは `POST`、`PUT`、`PATCH` だけです。 | | スケジュール | 5 つのフィールドの cron 式(分、時、日、月、曜日)。最短で 1 分に 1 回です。 | | タイムゾーン | 既定は `Asia/Taipei` です。 | cron 式の例: | 式 | 実行タイミング | | -------------- | -------------- | | `0 9 * * *` | 毎日 9:00 | | `*/15 * * * *` | 15 分ごと | | `0 8 * * 1` | 毎週月曜 8:00 | | `0 0 1 * *` | 毎月 1 日 0:00 | ## ジョブを作成する 1. **アプリにエンドポイントを追加する** 例:`POST /tasks/daily` に定期処理を実装し、デプロイして公開します。 2. **ジョブを作成する** 「デプロイ › スケジュールジョブ」を開き、アプリ、パス、スケジュールを指定します。 3. **手動で 1 回実行する** 「今すぐ実行」で試し、実行履歴でレスポンスコードとログを確認します。 ## 呼び出し元を確認する 既定では、呼び出しに送信元を証明する情報は付きません。次のどちらかを選びます。 - ジョブに `X-Cron-Secret` などの独自ヘッダーを設定し、値をアプリのシークレットとして保存して、コードで照合します。 - 署名付きトークンを有効にします。呼び出しに `Authorization: Bearer ` が付くので、`https://api.agentlab.cresclab.com/.well-known/jwks.json` で検証します。`aud` は `franky:app:<アプリ ID>` です。 ## 実行の動作 | 項目 | 動作 | | -------- | ------------------------------------------------------------------------------------------------------ | | 重複実行 | 重なりません。前回の実行中に予定時刻が来た回はスキップされます。 | | 配信 | 少なくとも 1 回。同じ実行が 2 回届くことがあるので、`X-Franky-Run-Id` ヘッダーで重複を除いてください。 | | 再試行 | 既定は 0 回、最大 5 回です。 | | 期限 | 15 秒〜30 分。既定は 3 分です。 | ```js server.js const runId = req.headers["x-franky-run-id"]; if (await alreadyHandled(runId)) { res.writeHead(200).end(); return; } ``` --- title: デプロイのトラブルシューティング description: バージョンが失敗したら、まずバージョンのページで理由を確認します。内容が受け付けられなかった場合は修正して再アップロードし、プラットフォームのエラーなら再試行します。 url: https://agentlab.cresclab.com/docs/ja/deploy/troubleshooting language: ja updated: 2026-10-06 --- # デプロイのトラブルシューティング バージョンが失敗したら、まずバージョンのページで理由を確認します。内容が受け付けられなかった場合は修正して再アップロードし、プラットフォームのエラーなら再試行します。 ## 内容が受け付けられなかった | 表示される内容 | 原因 | 対処 | | ---------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | | `index.html` が見つからない | フォルダの中身ではなく、フォルダごと圧縮しています。 | フォルダの中で圧縮し、`index.html` を最上位に置きます。 | | ファイル内にシークレットがある | API キーやトークンらしき文字列が含まれています。 | ファイルから削除し、キーを交換したうえでアプリの「設定」に入力して、再アップロードします。 | | イメージに `CMD` がない | Dockerfile に起動コマンドがありません。 | `CMD` または `ENTRYPOINT` を追加します。 | | `USER` が存在しない | イメージにないユーザーを指定しています。 | 数値の uid か、イメージにあるユーザー(`node` など)を使います。 | | プッシュが拒否される(amd64 以外) | Apple シリコンの Mac で arm64 としてビルドしています。 | `docker build --platform linux/amd64` でビルドし直します。 | | 重大な脆弱性 | イメージ内のパッケージに既知の重大な脆弱性があります。 | 検出結果に記載された修正版にパッケージを上げるか、その版を含む新しいベースイメージに移ります。 | ## 確認待ち 「先に確認する」に設定されたチェックで問題が見つかると、バージョンは「確認待ち」で止まります。結果を読んだうえで、そのまま公開できます。高い深刻度の脆弱性はこの扱いです。対処は重大な脆弱性と同じで、アップグレードすると警告が消えます。 ## バージョンが準備完了にならない ビルドに成功して公開もされたのに「実行」タブでインスタンスが準備完了にならない場合、多くはサーバーが指定ポートで待ち受けていません。 1. バージョンのページに `imagePortsAmbiguous` のお知らせがないか確認します。 2. サーバーを環境変数 `PORT` で待ち受けるようにするか、「設定 › 実行設定 › ポート」に実際の待ち受けポートを入力します。 3. 「サービスを再起動」を選びます。 ## 再起動を繰り返す 多くは、読み取り専用のファイルシステムで `/tmp` 以外に書き込もうとしていることが原因です。書き込み先を `/tmp` に変えてください。[コンテナ実行契約](https://agentlab.cresclab.com/docs/ja/deploy/runtime-contract.md#writable-paths)をご覧ください。 ## プラットフォームのエラー 原因がプラットフォーム側にある場合は、同じバージョンを再試行します。内容の変更も再アップロードも不要です。 ## それでも解決しない場合 - 「実行」タブで、インスタンスの状態と最近のログを確認します。 - イメージの「チェック」タブで、プラットフォームが残したお知らせを確認します。 - Agent Lab MCP に接続した AI ツールに、デプロイの状態を読んでもらいます。このページと同じコードを読み取れます。 --- title: MCP ツール description: Agent Lab MCP サーバーのデプロイ関連ツールです。AI ツールにできることは、あなたがコンソールでできることを超えません。 url: https://agentlab.cresclab.com/docs/ja/deploy/mcp-tools language: ja updated: 2026-10-06 --- # MCP ツール Agent Lab MCP サーバーのデプロイ関連ツールです。AI ツールにできることは、あなたがコンソールでできることを超えません。 ## 接続先 ```text https://api.agentlab.cresclab.com/v1/mcp ``` 接続方法は [AI ツールでデプロイする](https://agentlab.cresclab.com/docs/ja/deploy/ai-agent.md#connect)をご覧ください。すべてのツールに `organization` 引数が必要で、値は接続時にサーバーが伝えます。 ## アプリとバージョン | ツール | 内容 | | ----------------------- | ---------------------------------------------------------------------------------- | | `sites_list` | アプリと、そのアドレス、内部アドレスを一覧表示します。 | | `sites_create` | アプリを作成します。アドレスラベルは再利用できません。 | | `sites_deploy` | 新しいバージョンを開始し、アップロード先とトークンを返します。 | | `sites_deploy_finalize` | アップロード完了後、バージョンをビルドに送ります。 | | `sites_deploy_status` | バージョンの段階、失敗の理由、ポート、お知らせ。 | | `sites_deploy_retry` | プラットフォームのエラーで失敗したバージョンを、再アップロードせずに再試行します。 | | `sites_promote` | バージョンを公開します。ロールバックにも使います。 | | `sites_runtime_status` | 配信中のバージョンと、準備完了のインスタンス数。 | | `sites_restart` | 停止せずに、保存済みの設定を反映します。 | | `sites_files` | バージョンのファイル一覧(パス、サイズ、ハッシュ)。内容は返しません。 | | `sites_lifecycle` | アプリの一時停止、再開、削除、復元。すべてのブランチに同時に適用されます。 | | `sites_purge` | アプリを完全に削除します。元に戻せません。 | ## スケジュールジョブ | ツール | 内容 | | ------------------------------------------------ | ------------------------------------------------------------------------------ | | `scheduled_jobs_list`、`scheduled_jobs_get` | ジョブの一覧、または 1 件の読み取り。 | | `scheduled_jobs_create`、`scheduled_jobs_update` | ジョブの作成と変更。変更はジョブ全体を置き換えるので、先に読み取ってください。 | | `scheduled_jobs_run` | ジョブを今すぐ実行します。 | | `scheduled_jobs_runs` | 実行履歴と、1 回分のログ。 | | `scheduled_jobs_lifecycle` | ジョブの一時停止、再開、削除。 | ## ブランチとドキュメント | ツール | 内容 | | ------------------- | ---------------------------------------------------------------------------- | | `environments_list` | 組織のブランチを一覧表示します。 | | `docs_read` | このドキュメントを Markdown で読みます。ページを指定しないと目次を返します。 | > [!NOTE] ブランチが複数あるときは指定が必要です > 組織に複数のブランチがある場合、各呼び出しでブランチを指定します。指定がないと `environmentRequired` で拒否されます。 ## 応答に含まれるドキュメントへのリンク デプロイが受け付けられなかったとき、`sites_deploy_status` の失敗情報には `help` が付き、[デプロイのトラブルシューティング](https://agentlab.cresclab.com/docs/ja/deploy/troubleshooting.md)の英語版 Markdown を指します。イメージのお知らせには `noticesHelp` が付き、[コンテナ実行契約](https://agentlab.cresclab.com/docs/ja/deploy/runtime-contract.md#notices)を指します。 --- title: 用語集 description: このドキュメントが 4 つの言語で使う用語です。まずコンソールに合わせ、コンソールにない用語は Google Cloud、Cloudflare、Vercel の各言語版ドキュメントを参考にしています。 url: https://agentlab.cresclab.com/docs/ja/deploy/glossary language: ja updated: 2026-10-06 --- # 用語集 このドキュメントが 4 つの言語で使う用語です。まずコンソールに合わせ、コンソールにない用語は Google Cloud、Cloudflare、Vercel の各言語版ドキュメントを参考にしています。 ## 用語 | English | 正體中文 | 日本語 | ไทย | 參考 / Reference | | -------------------- | ------------ | ------------------ | ---------------------- | ---------------------------------------------- | | Deploy | 部署 | デプロイ | ดีพลอย | Google Cloud, Cloudflare, Vercel | | App | App | アプリ | แอป | Cloudflare Workers & Pages | | Version | 版本 | バージョン | เวอร์ชัน | Cloudflare Versions (Cloud Run: revision) | | Go live | 上線 | 公開 | เผยแพร่ | Vercel: Promote to Production | | Roll back | 回到先前版本 | ロールバック | ย้อนกลับ | Cloudflare Rollbacks, Vercel Instant Rollback | | Production | 正式環境 | 本番環境 | โปรดักชัน | Vercel, Cloudflare | | Preview address | 版本預覽網址 | プレビューアドレス | ที่อยู่พรีวิว | Cloudflare Preview URLs | | Public address | 對外網址 | 公開アドレス | ที่อยู่สาธารณะ | Agent Lab console | | Internal address | 內網網址 | 内部アドレス | ที่อยู่ภายใน | Agent Lab console | | Address label | 網址標籤 | アドレスラベル | ป้ายกำกับที่อยู่ | Agent Lab console | | Branch | 分支 | ブランチ | สาขา | Cloudflare Pages branches, Vercel Environments | | Build | 建置 | ビルド | บิลด์ | Google Cloud Build | | Container image | 容器映像檔 | コンテナイメージ | อิมเมจคอนเทนเนอร์ | Google Cloud Artifact Registry | | Image registry | 映像檔登錄檔 | イメージレジストリ | รีจิสทรีอิมเมจ | Google Cloud Artifact Registry | | Port | 通訊埠 | ポート | พอร์ต | Google Cloud | | Instance | 執行個體 | インスタンス | อินสแตนซ์ | Google Cloud Run | | Environment variable | 環境變數 | 環境変数 | ตัวแปรสภาพแวดล้อม | Google Cloud, Vercel, Cloudflare | | Secret | 密鑰 | シークレット | ความลับ | Google Secret Manager, Cloudflare Secrets | | Access | 存取權 | アクセス | การเข้าถึง | Google Cloud IAM | | Logs | 記錄 | ログ | บันทึก | Google Cloud Logging | | Scheduled job | 排程工作 | スケジュールジョブ | งานตามกำหนดเวลา | Google Cloud Scheduler | | Cron expression | cron 運算式 | cron 式 | นิพจน์ cron | Cloudflare Cron Triggers | | Time zone | 時區 | タイムゾーン | เขตเวลา | Google Cloud | | Restart | 重新啟動 | 再起動 | รีสตาร์ต | Google Cloud | | Pause / Resume | 暫停 / 恢復 | 一時停止 / 再開 | หยุดชั่วคราว / เปิดต่อ | Agent Lab console | | Remove / Restore | 移除 / 還原 | 削除 / 復元 | ลบออก / กู้คืน | Agent Lab console | | Delete permanently | 永久刪除 | 完全に削除 | ลบถาวร | Agent Lab console | | Notice | 提示 | お知らせ | ประกาศ | Agent Lab console | ## 用語の選び方 - コンソールにある用語はそのまま使い、ドキュメントと画面を一致させます。 - コンソールにない用語は、Google Cloud の日本語ドキュメントの訳語を使います。 - 業界で定着しているカタカナ語はそのまま使います(デプロイ、ロールバックなど)。 - システム内部の名前ではなく、画面に表示される名前を使います。内部で環境と呼ぶものも、ブランチと書きます。