環境は、セッションのコンテナテンプレート (オペレーティングシステム、ネットワークポリシー、プレインストール済みパッケージ) を定義します。セキュリティ監査、データ分析、汎用開発など、さまざまなユースケースに合わせてカスタマイズされた環境を作成できます。
新しい Qoder CN ドキュメントサイトが公開されました。このサイトのコンテンツは、最新の製品機能を反映していない可能性があります。最新の製品ドキュメントについては、docs.qoder.cn をご覧ください。
環境とは
環境はセッションのインフラストラクチャ層として機能します。
-
コンテナタイプ:現在、
cloud(クラウドホスト型コンテナ) をサポートしています。 -
ネットワークポリシー:コンテナのアウトバウンドネットワークアクセスを制御します。
-
パッケージ:システム、Python、Node.js のパッケージをプレインストールします。
セッションが開始されるたびに、指定された環境テンプレートに基づいて分離されたインスタンスが作成されます。
フィールド
|
パラメーター |
型 |
必須 |
説明 |
|
|
文字列 |
— |
|
|
|
文字列 |
— |
|
|
|
文字列 |
はい |
環境の名前。 |
|
|
文字列 |
いいえ |
オプションの説明。デフォルトは |
|
|
オブジェクト |
はい |
環境設定 (タイプ、ネットワーク、パッケージ)。 |
|
|
文字列 |
はい |
コンテナタイプ。現在は |
|
|
オブジェクト |
いいえ |
ネットワークポリシーオブジェクト。 |
|
|
オブジェクト |
いいえ |
プレインストール済みパッケージの設定。 |
|
|
文字列 |
— |
環境のステータス。常に |
|
|
ブール値 |
— |
環境がアーカイブされているかどうかを示します。デフォルトは |
|
|
文字列 | 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: はい、"pandas==2.1.0" や "typescript@5.0.0" など、pip および npm パッケージのバージョンを指定できます。apt パッケージは、システムのリポジトリにあるデフォルトのバージョンを使用します。Q: ネットワーク設定が正しくないためにエージェントの実行に失敗した場合は、どうすればよいですか?A: 新しい環境を作成するか、既存の環境を更新し、ネットワークポリシーを変更してから、セッションを再起動します。Q: 1 つのアカウントで作成できる環境の最大数はいくつですか?A: 厳密な制限はありません。ただし、管理上の問題を避けるために、実際のニーズに基づいて環境を作成することをお勧めします。整理のために命名規則を使用することをお勧めします。