環境はセッションのコンテナーテンプレートを定義し、オペレーティングシステム、ネットワークポリシー、プリインストールパッケージを指定します。セキュリティ監査用の高度に分離された環境、データサイエンスライブラリがプリインストールされた分析環境、またはネットワークアクセスが無制限の汎用開発環境など、さまざまなユースケースに応じて異なる環境を作成できます。
環境とは
環境は、セッションのインフラストラクチャレイヤーとして機能します。
コンテナータイプ:現在、
cloud(クラウドホスト型コンテナー) をサポートしています。ネットワークポリシー:コンテナーのアウトバウンドネットワークアクセスを制御します。
パッケージ:システム、Python、Node.js のパッケージをプリインストールします。
セッションが開始されるたびに、指定された環境テンプレートに基づいて分離されたインスタンスが作成されます。
フィールド
パラメーター | タイプ | 必須 | 説明 |
| 文字列 | — | システムが生成する ID で、 |
| 文字列 | — |
|
| 文字列 | はい | 環境の名前。 |
| 文字列 | いいえ | 任意の説明。デフォルトは |
| オブジェクト | はい | 環境設定 (タイプ、ネットワーク、パッケージ)。 |
| 文字列 | はい | コンテナータイプ。現在は |
| オブジェクト | いいえ | ネットワークポリシーを定義します。 |
| オブジェクト | いいえ | プリインストールパッケージの設定。 |
| 文字列 | — | 環境のステータス。常に |
| ブール値 | — | 環境がアーカイブされているかどうかを示します。デフォルトは |
| string|null | — | アーカイブのタイムスタンプ (ISO 8601)。アーカイブされていない場合は |
| 文字列 | — | 作成のタイムスタンプ (ISO 8601)。 |
| 文字列 | — | 最終更新のタイムスタンプ (ISO 8601)。 |
ネットワークポリシー
config.networking フィールドは 3 つのモードをサポートしています。 すべてのモードでオブジェクト形式を使用する必要があります。 "unrestricted" のような文字列のショートハンドはサポートされておらず、400 エラーが発生します。
モード | 値 | 説明 |
無制限 |
| コンテナーは任意の外部アドレスにアクセスできます。 |
制限付き |
| 既知の安全なパブリックサービスとパッケージマネージャーへのアクセスのみを許可します。 |
許可リスト |
| 指定されたホスト名のリストへのアクセスを制限します。 |
networking フィールド
パラメーター | タイプ | 説明 |
| 文字列 | ネットワークポリシーのタイプ: |
| ブール値 |
|
| 配列 |
|
無制限モード
{
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"}
}
}
依存関係のダウンロードや外部 API へのアクセスが必要な一般的な開発タスクに使用します。
制限付きモード
{
"config": {
"type": "cloud",
"networking": {
"type": "limited",
"allow_package_managers": true
}
}
}
任意のインターネットアクセスは不要でも、パッケージマネージャー経由で依存関係を取得する必要があるタスクに使用します。
許可リストモード
{
"config": {
"type": "cloud",
"networking": {
"type": "allowed_hosts",
"allowed_hosts": [
"api.github.com",
"registry.npmjs.org",
"pypi.org"
]
}
}
}
到達可能な外部サービスを厳密に制御する必要がある、高度なセキュリティやコンプライアンスのシナリオに使用します。
プリインストールパッケージ
コンテナーの起動時にプリインストールするパッケージを指定するには、config.packages を使用します。
{
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"},
"packages": {
"apt": ["git", "build-essential", "libssl-dev"],
"pip": ["pandas", "numpy", "scikit-learn"],
"npm": ["typescript", "eslint", "prettier"]
}
}
}
パッケージマネージャー | パラメーター | 説明 |
apt |
| Debian/Ubuntu のシステムパッケージ。 |
pip |
| Python パッケージ。 |
npm |
| Node.js パッケージ (グローバルにインストールされます)。 |
パッケージをプリインストールすると、環境の初期化時間が長くなります。必要なものだけを追加し、他のパッケージはセッション中にオンデマンドでインストールしてください。
環境の作成
# データサイエンス専用の環境を作成する
curl -s -X POST https://api.qoder.com.cn/api/v1/cloud/environments \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "data-science",
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"},
"packages": {
"apt": ["build-essential"],
"pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
}
}
}' | jq .
成功すると、API は 201 Created ステータスを返します。
{
"id": "env_019e44eb66bb748cabcd1489f6fa4428",
"type": "environment",
"name": "data-science",
"description": "",
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"},
"packages": {
"apt": ["build-essential"],
"pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
}
},
"status": "ready",
"archived": false,
"archived_at": null,
"created_at": "2026-05-18T10:00:00Z",
"updated_at": "2026-05-18T10:00:00Z"
}
セキュアな環境の作成
# 内部 API へのアクセスのみを許可するセキュアな環境を作成する
curl -s -X POST https://api.qoder.com.cn/api/v1/cloud/environments \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "secure-internal",
"config": {
"type": "cloud",
"networking": {
"type": "allowed_hosts",
"allowed_hosts": ["internal-api.mycompany.com", "git.mycompany.com"]
},
"packages": {
"apt": ["git", "curl"]
}
}
}' | jq .
環境の取得
# すべての環境を一覧表示する
curl -s https://api.qoder.com.cn/api/v1/cloud/environments \
-H "Authorization: Bearer $QODER_PAT"
# 単一の環境の詳細を取得する
curl -s https://api.qoder.com.cn/api/v1/cloud/environments/env_ds456 \
-H "Authorization: Bearer $QODER_PAT"
環境の更新
# 既存の環境に新しいパッケージを追加する
curl -s -X PUT https://api.qoder.com.cn/api/v1/cloud/environments/env_ds456 \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "data-science",
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"},
"packages": {
"apt": ["build-essential", "libpq-dev"],
"pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter", "sqlalchemy"]
}
}
}' | jq .
環境を更新しても、実行中のセッションには影響しません。新しい設定は、更新後に作成されたセッションにのみ適用されます。
環境の削除
# カスタム環境を削除する
curl -s -X DELETE https://api.qoder.com.cn/api/v1/cloud/environments/env_ds456 \
-H "Authorization: Bearer $QODER_PAT"アクティブなセッションで使用中の環境がある場合、DELETE リクエストは 409 Conflict エラーとなり、メッセージ "Environment is in use and cannot be deleted" が返されます。これを解決するには、関連するセッションをアーカイブまたは削除します。または、POST /environments/{id}/archive を使用して環境を論理削除することで、この制限を回避できます。
推奨構成
シナリオ | 推奨構成 |
一般的な開発 |
|
データ分析 | pandas/numpy をプリインストールし、無制限のネットワークを使用します。 |
セキュリティ監査 | ネットワークに許可リストを使用し、最小限のパッケージをインストールします。 |
フロントエンド開発 | Node.js エコシステムツールをプリインストールし、npm レジストリへのアクセスを許可します。 |
CI/CD 統合 | Git と Docker CLI をプリインストールし、許可リストモードを使用します。 |
よくある質問
Q: 環境を作成してから使用できるようになるまで、どのくらい待つ必要がありますか? A: 環境が作成されると、そのステータスはすぐに ready に設定され、直ちにセッションを作成するために使用できます。依存関係のインストールを含む実際のコンテナーの初期化は、セッションの開始時に行われます。 Q: プリインストールするパッケージのバージョンを指定できますか? A: はい、pip と npm パッケージについては、"pandas==2.1.0" や "typescript@5.0.0" のようにバージョンを指定できます。apt パッケージは、システムのリポジトリからデフォルトのバージョンを使用します。 Q: ネットワーク設定が正しくないためにエージェントの実行に失敗した場合はどうすればよいですか? A: 新しい環境を作成するか、既存の環境を更新してネットワークポリシーを変更し、セッションを再起動してください。 Q: 1 つのアカウントで作成できる環境の最大数はいくつですか? A: ハードリミットはありません。しかし、管理上の問題を避けるため、実際のニーズに基づいて環境を作成することを推奨します。整理のために命名規則を使用することをお勧めします。