Skip to main content
Agent 環境の設定

クラウド環境セットアップ

Agent が動作するコンテナと依存関係を選択する。

Environment は、Session が使用するランタイムを定義します。環境タイプ、プリインストール依存関係、セットアップスクリプト、metadata を含みます。デフォルトのマネージド Environment を使用するほか、特定のタスクに必要なツールを備えた Environment を作成したり、セルフホストランタイムを接続したりできます。

環境とは

Environment は Session の基盤となるインフラストラクチャレイヤーです:
  • 環境タイプ - cloud はクラウドマネージドコンテナ、self_hosted はセルフホスト実行環境を示します。
  • パッケージ - プリインストールされるシステムパッケージ、Python パッケージ、Node.js パッケージです。
  • セットアップスクリプト - コンテナ準備段階でパッケージインストール後に実行されるユーザースクリプトです。
Session が起動すると、指定された Environment テンプレートに基づいて専用のランタイムインスタンスが作成されます。

フィールドリファレンス

フィールド必須説明
idstring-システム生成、env_ プレフィックス
typestring-固定値 "environment"
namestringはい環境名
descriptionstringいいえ自由記述、デフォルトは ""
configobjectいいえ環境設定。省略時は {"type":"cloud"} がデフォルト
config.typestringconfig 指定時は必須環境タイプ:"cloud" または "self_hosted"
config.packagesobjectいいえcloud 環境のプリインストールパッケージ設定
config.setup_scriptstringいいえsandbox 準備段階で実行される shell スクリプト(最大 64 KB)
metadataobjectいいえカスタム key/value metadata
archived_atstring|null-アーカイブ時刻(ISO 8601)、未アーカイブ時は null
created_atstring-作成時刻
updated_atstring-最終更新時刻

Config タイプ

config.type"cloud" または "self_hosted" を指定できます。 self_hosted の config にはタイプと任意の setup_script を指定できます:
{"type": "self_hosted"}
セルフホスト Environment はマネージドクラウドコンテナを起動しません。外部 worker は Work API を使用して、その Environment の Session work をポーリング、確認応答、heartbeat、停止します。self_hosted config で使用できるのは type と任意の setup_script のみです。 cloud の config には packagessetup_script を含めることができます。

プリインストールパッケージ

config.packages でコンテナ起動時にインストールされる依存関係を指定します:
{
  "config": {
    "type": "cloud",
    "packages": {
      "apt": ["git", "build-essential", "libssl-dev"],
      "pip": ["pandas", "numpy", "scikit-learn"],
      "npm": ["typescript", "eslint", "prettier"]
    }
  }
}
パッケージマネージャーフィールド説明
aptpackages.aptDebian/Ubuntu システムパッケージ
pippackages.pipPython パッケージ
npmpackages.npmNode.js パッケージ
プリインストールパッケージは環境の起動時間を増加させます。本当に必要なパッケージのみを追加し、残りは Session 内でオンデマンドでインストールしてください。

セットアップスクリプト

config.setup_script は sandbox 準備段階で packages のインストール完了後に実行される shell スクリプトです。/bin/bash -lc で実行されます。リポジトリの clone、設定ファイルの作成、キャッシュのウォームアップなど、packages では表現できない初期化ステップに使用します。
制約
string
最大長64 KB
インタープリター/bin/bash -lc
タイムアウト10 分
実行タイミングsandbox 準備段階、packages インストール完了後
# プロジェクトを clone して依存関係キャッシュをウォームアップする環境を作成
curl -s -X POST https://api.qoder.com/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "node-with-init",
    "config": {
      "type": "cloud",
      "packages": {
        "npm": ["pnpm@9"]
      },
      "setup_script": "set -euo pipefail\n[ -d /data/workspace/repo/.git ] || git clone https://github.com/me/repo /data/workspace/repo\ncd /data/workspace/repo && pnpm install --frozen-lockfile"
    }
  }' | jq .
実行成功後、sandbox 内に完了マーカーが書き込まれるため、同一 sandbox 内では再実行されません。sandbox が再作成されると再度実行されます。スクリプトがゼロ以外の終了コードで終了すると Session の起動が中断され、エラーレスポンスに exit code と stderr の抜粋が含まれます。

環境の作成

# データサイエンス用環境を作成
curl -s -X POST https://api.qoder.com/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "data-science",
    "config": {
      "type": "cloud",
      "packages": {
        "apt": ["build-essential"],
        "pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
      }
    }
  }' | jq .
成功時は 200 OK が返されます:
{
  "id": "env_019e44eb66bb748cabcd1489f6fa4428",
  "type": "environment",
  "name": "data-science",
  "description": "",
  "config": {
    "type": "cloud",
    "packages": {
      "type": "packages",
      "apt": ["build-essential"],
      "cargo": [],
      "gem": [],
      "go": [],
      "npm": [],
      "pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
    }
  },
  "metadata": {},
  "archived_at": null,
  "created_at": "2026-05-18T10:00:00Z",
  "updated_at": "2026-05-18T10:00:00Z"
}

環境の取得

# すべての環境を一覧表示
curl -s https://api.qoder.com/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN"
# 単一の環境を取得
curl -s https://api.qoder.com/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN"

環境の更新

# 既存の環境に新しい依存関係を追加
curl -s -X POST https://api.qoder.com/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "data-science",
    "config": {
      "type": "cloud",
      "packages": {
        "apt": ["build-essential", "libpq-dev"],
        "pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter", "sqlalchemy"]
      }
    }
  }' | jq .
環境を更新しても実行中の Session には影響しません。新しい設定は更新後に作成された Session にのみ適用されます。

環境選定ガイド

シナリオ推奨設定
汎用開発default Environment、追加設定不要
データ分析pandas/numpy をプリインストールし、依存関係レジストリへの接続を確認
フロントエンド開発Node.js ツールチェーンをプリインストールし、npm レジストリへの接続を確認
CI/CD 統合必要な CLI をプリインストールし、対象ランタイムで依存関係への接続を確認

よくある質問

Q: 環境を作成した後、使用できるまでどのくらい待つ必要がありますか? A: 環境は作成後すぐに使用可能です。コンテナの実際のプロビジョニング(依存関係のインストールを含む)は Session の起動時に行われます。 Q: パッケージのバージョンを固定できますか? A: pip と npm パッケージはバージョン指定をサポートしています。例:"pandas==2.1.0""typescript@5.0.0"。apt パッケージはシステムリポジトリのデフォルトバージョンが使用されます。 Q: アカウントごとに作成できる環境の数に上限はありますか? A: ハードリミットはありません。実際の必要に応じて作成し、命名規則を使って整理することを推奨します。

次のステップ