ホストシステム上で信頼されていないコードを実行したり、AI エージェント用のブラウザー自動化を実行したりすることは、セキュリティリスクとなります。サンドボックス関数は、ステートフルで安全な、分離された実行環境を提供します。各セッションには専用の関数インスタンスがあり、コードインタープリターやブラウザー自動化などのシナリオに最適です。このトピックでは、Function Compute コンソールでサンドボックス関数を作成する方法について説明します。
事前準備
サンドボックス関数は一部のリージョンでのみ利用可能です。サポートされているリージョンを確認するには、「サンドボックス関数の使用制限」をご参照ください。現在のリージョンがサポートされていない場合、コンソールの関数タイプ選択エリアに サンドボックス関数 タブは表示されません。
必須
-
Function Compute の有効化:Function Compute コンソールでサービスを有効化します。
-
サービスリンクロール (SLR):サンドボックス関数は、Function Compute の関数とセッションを作成するために、Alibaba Cloud のサービスリンクロール (SLR)
AliyunServiceRoleForFC(ロール名:aliyunserviceroleforfc) を使用します。このロールは Function Compute によって自動的に作成および管理されるため、通常は手動での操作は不要です。 -
RAM 権限:現在のユーザーまたはロールが、サンドボックス関数の作成と管理に必要な権限があることを確認してください。
任意 (カスタム設定の場合)
-
VPC 設定 (NAS または PolarFS のマウントに必要):VPC ID (
vpcId)、セキュリティグループ ID (securityGroupId)、および vSwitch ID (vSwitchIds) を準備します。 -
実行ロールの ARN (OSS のマウントに必要):RAM ロールを作成し、その ARN を取得します。
-
Container Registry (ACR) へのアクセス (カスタムコンテナイメージの使用に必要):ACR リポジトリにアクセスする権限があることを確認してください。
クイックスタート
このセクションでは、すべてのデフォルト設定 (コードインタープリター イメージ、2 vCPU / 4096 MB メモリ / 512 MB ディスク、Cookie ベースのセッションアフィニティ) を使用してサンドボックス関数を作成する手順を説明します。
-
Function Compute コンソールにログインします。上部メニューで、中国 (杭州) など、サンドボックス関数をサポートするリージョンを選択します。
-
左側メニューで、[関数管理] > [関数リスト] を選択し、[関数の作成] をクリックします。
-
関数タイプを選択するためのポップアップウィンドウで、[サンドボックス関数] タブをクリックし、下部にある [サンドボックス関数の作成] ボタンをクリックします。
-
[イメージ設定] セクションでは、デフォルトで [コードインタープリター] のプリセットイメージが選択されています。コード実行とブラウザー自動化の両方の機能を使用するには、[オールインワン] イメージに切り替えます。
-
my-first-sandboxなどの [関数名] を入力し、他の設定はデフォルト値のままにします。 -
[作成] をクリックし、関数が作成されるのを待ちます。
-
関数が作成されると、自動的に関数の詳細ページにリダイレクトされます。[セッション管理] タブをクリックし、[セッションの作成] をクリックして、セッションのステータスが [アクティブ] に変わるのを待ちます。
-
セッションの詳細ページで、組み込みのターミナルで次のコマンドを実行して、サンドボックス関数が正しく動作していることを確認します。
echo 'Hello, FC Sandbox!' python3 -c "print(1 + 1)"
期待される出力:
Hello, FC Sandbox!
2
カスタム設定については、「手順 (全設定)」をご参照ください。
手順 (全設定)
ステップ1:関数タイプの選択と基本情報の入力
-
Function Compute コンソールにログインします。
-
左側メニューで、[関数管理] > [関数リスト] を選択し、[関数の作成] をクリックします。
-
関数タイプ選択ウィンドウで、[サンドボックス関数] タブをクリックし、下部にある [サンドボックス関数の作成] ボタンをクリックします。
-
[関数名] (必須) を入力します。1~64 文字で、先頭は英字またはアンダースコアである必要があります。英字、数字、アンダースコア (_)、ハイフン (-) を含めることができます。名前は作成後に変更できません。
サンドボックス関数タイプを選択すると、システムは自動的に次のパラメーターを設定します。これらのパラメーターは変更できず、コンソールには表示されません。
|
パラメーター |
自動設定値 |
説明 |
|
ランタイム |
カスタムコンテナ |
サンドボックス関数は常にコンテナ イメージから実行されます。 |
|
インスタンス分離モード |
セッション専用 ( |
各セッションには専用の関数インスタンスがあります。 |
|
インスタンスの同時実行数 ( |
200 |
単一のインスタンスが処理できる同時リクエストの最大数。 |
|
インスタンスごとのセッション同時実行数 ( |
1 |
各インスタンスは一度に 1 つのセッションのみを処理します。 |
ステップ2:インスタンス仕様の設定
[自動スケーリングとインスタンス仕様] パネルで、サンドボックス インスタンスのリソース仕様を設定します。サンドボックス関数にはインスタンス仕様の最小要件があります。値が最小値を下回る場合、コンソールは送信を許可しません。
|
パラメーター |
デフォルト |
最小値 |
利用可能な値 |
説明 |
|
CPU |
2 vCPU |
2 vCPU |
利用可能な仕様から選択 |
サンドボックス関数の vCPU コア数。 |
|
メモリ |
4096 MB (4 GB) |
4096 MB |
利用可能な仕様から選択 |
サンドボックス関数のメモリサイズ。 |
|
ディスクサイズ |
512 MB |
512 MB |
512 MB、10240 MB |
サンドボックスのシナリオでは、十分な一時ストレージスペースを確保するために 10240 MB を選択することを推奨します。 |
このパネルには、自動スケーリング ポリシーの設定も含まれており、リザーブドインスタンスの数やスケジュールされたスケーリングのルールを設定できます。
ステップ3:コンテナイメージの設定
[コード設定] パネルで、イメージソースを選択します。サポートされているソースには、[サンプルイメージ]、[ACR Personal Edition イメージ]、[ACR Enterprise Edition イメージ]、[その他の公開イメージ]、[カスタムイメージリポジトリ] があります。デフォルトでは [サンプルイメージ] が選択されています。
コンソールでは、以下のビルド済みサンドボックスイメージが用意されています (デフォルトでは [コードインタープリターサンドボックス] が選択されています):
|
イメージ名 |
イメージURL |
デフォルトポート |
説明 |
|
[Code Interpreter Sandbox コードサンドボックス] |
|
5000 |
Python/Node.js のコード実行をサポートします。AI エージェントのコードサンドボックス、データ分析などのシナリオに最適です。 |
|
[Browser Tool Sandbox ブラウザーツールサンドボックス] |
|
3000 |
ブラウザー自動化環境です。Web スクレイピング、スクリーンショット撮影、ページ操作など、ブラウザー関連のタスクに適しています。 |
|
[All-in-One Sandbox 統合サンドボックス] |
|
5000 |
コードインタープリターとブラウザツールを統合しています。両方の機能が必要なシナリオに最適です。 |
ビルド済みイメージの URL はリージョンに基づいて自動的に選択されます。中国本土のリージョン (杭州、上海、北京、深圳) では serverless-registry.cn-hangzhou.cr.aliyuncs.com レジストリが使用されます。シンガポールおよび香港 (中国) リージョンでは serverless-registry.ap-southeast-1.cr.aliyuncs.com レジストリが使用されます。現在のイメージバージョンは v0.9.30 です。
このパネルには、単一リクエストのタイムアウトを定義する [タイムアウト] 設定 (デフォルト:60 秒、範囲:1~86,400 秒) も含まれています。これはセッションライフサイクルとは無関係です。
イメージ選択ガイド:デフォルトでは最初のイメージ ([コードインタープリターサンドボックス]) が選択されています。コード実行のみの場合は [コードインタープリターサンドボックス] を使用してください。ブラウザー自動化のみの場合は [ブラウザツールサンドボックス] を使用してください。両方の機能が必要な場合や不明な場合は、[オールインワンサンドボックス] を選択してください。独自のサンドボックス イメージを使用するには、イメージソースとして ACR またはカスタムイメージリポジトリを選択してください。
ステップ4:セッションの分離とライフサイクルの設定
サンドボックス関数のセッション設定は、通常の関数で使用される [詳細設定] 折りたたみパネルとは異なり、専用の [セッションの分離とアフィニティ] パネルにあります。
インスタンス分離モード:これはセッション専用 (SESSION_EXCLUSIVE) に固定されており、変更できません。
[セッションアフィニティ]:サンドボックス関数ではセッションアフィニティが強制され、デフォルトは Cookie ベースのアファニティ (GENERATED_COOKIE) です。システムはセッションを識別するための Cookie を自動的に生成・管理し、同じセッションからのリクエストが同じサンドボックス インスタンスにルーティングされることを保証します。HeaderField ベースのアフィニティ (HEADER_FIELD) を選択することもでき、これはカスタムヘッダーフィールドを使用してセッションを識別します。サポートされているアフィニティタイプ:
|
アフィニティタイプ |
説明 |
|
Cookieアフィニティ (デフォルト) |
システムが生成した Cookie を使用します。追加の設定は不要です。ブラウザーアクセス、Web アプリケーションなどのシナリオに適しています。 |
|
ヘッダーフィールドアフィニティ |
セッションアフィニティにカスタム HTTP ヘッダーを使用します。ヘッダー名を設定する必要があります。ヘッダー名は英字で始まる 5~40 文字 (英字、数字、アンダースコア、ハイフン) で、 |
セッションライフサイクル設定:
|
パラメーター |
デフォルト |
範囲 |
説明 |
|
[単一セッションのライフサイクル] ( |
86,400 秒 (24時間) |
60~86,400 秒 |
セッションの最大存続期間。この期間が過ぎると、システムは自動的にセッションとそれにバインドされたインスタンスを終了します。 |
|
[セッションアイドル期間] ( |
1,800 秒 (30分) |
60 秒からセッションライフサイクル期間まで |
システムがアイドル状態のセッションを自動的に終了するまでの非アクティブ期間。この値はセッションの最大存続期間を超えることはできません。 |
ステップ5:詳細オプションの設定 (任意)
[詳細設定] パネルで、必要に応じて以下のオプションを設定します。
RAMロールとネットワーク
-
RAM ロール:関数が他のクラウド リソースにアクセスするために使用するロールを選択します。
-
ネットワーク設定:プライベートリソースへの VPC ネットワークアクセスを設定します。これは NAS または PolarFS をマウントする際に必要です。
ストレージのマウント
サンドボックス関数は、サンドボックス インスタンスに永続的または共有のデータストレージを提供するために、以下のストレージタイプのマウントをサポートします。
|
ストレージタイプ |
最大マウントポイント数 |
前提条件 |
|
NAS |
5 |
VPC 設定 |
|
OSS |
5 |
実行ロールの ARN |
|
PolarFS |
5 |
VPC 設定 |
-
NAS または PolarFS をマウントするには、完全な VPC 設定 (VPC ID、セキュリティグループ ID、vSwitch ID) が必要です。
-
NAS と PolarFS を同時にマウントする場合、それらの
UserIDとGroupIDは同一である必要があります。 -
mountDirは、すべてのマウント済みストレージタイプ間で一意である必要があります。
可観測性
-
ログ設定:Log Service を設定して、関数の実行ログを収集します。デフォルトで自動ログ収集が有効になっています。
-
トレーシング:トレーシングを設定して、コールチェーンを監視します。
その他の設定
-
リソースグループ:リソースの分類と権限管理のためにリソースグループを選択します。
-
タイムゾーン:関数のランタイムタイムゾーンを設定します。デフォルトは UTC です。
-
環境変数:ランタイムに環境変数として読み取ることができるキーと値のペアを設定します。
アイドルタイムアウト: アイドルインスタンスが回収されるまでの時間を設定します。
ステップ6:作成の完了
すべての設定が正しいことを確認した後、[作成] をクリックします。関数が正常に作成されると、システムは自動的に関数の詳細ページにリダイレクトします。
クォータと制限
|
制限 |
制約 |
|
インスタンス分離モード |
|
|
インスタンスの同時実行数 |
200 に固定されており、変更できません。 |
|
インスタンスごとのセッション同時実行数 |
1 に固定されており、変更できません。 |
|
マウントポイントの数 |
各ストレージタイプごとに最大 5 つのマウントポイント。 |
|
関数名 |
1~64 文字。先頭は英字またはアンダースコアである必要があります。 |
|
タイムアウト |
1~86,400 秒 |
|
セッションライフサイクル |
60~86,400 秒 |
|
セッションアイドルタイムアウト |
60 秒から設定されたセッションライフサイクル期間まで |