以下の例では、CWSANDBOX_API_KEY に設定した CoreWeave API アクセストークンを使用します。Forge APIキーによる認証については、はじめにを参照してください。CKS の要件については、配置モードを参照してください。
このガイドでは、CWSandbox インスタンスで環境変数を設定および管理する方法について説明します。環境変数を使用すると、ログレベルや project 識別子など、機密性のない設定値をサンドボックスに渡すことができます。環境変数は、個々のサンドボックスに設定するほか、セッション内の複数のサンドボックスで共有したり、適用範囲をリモート関数に限定したりすることもできます。
APIキー、パスワード、その他の認証情報を environment_variables にハードコードしたり、ログに出力したりしないでください。認証情報をそのまま渡すのではなく、シークレット参照を使用することを推奨します。Forge のシークレット注入を利用できない場合でも、機密性の高い値はシークレットマネージャーで管理してください。このガイダンスは、サーバーレスサンドボックスと CKS サンドボックスの両方に適用されます。
Forge で認証されたサーバーレスサンドボックスでは、Forge シークレットを使用してください。サーバーがこれらの参照を解決し、値を環境変数として注入します。Forge のシークレット注入は、CKS に配置されたサンドボックスや、CoreWeave API アクセストークンで認証されたサンドボックスでは利用できません。CKS の場合は、組織で承認されている方法でワークロードにシークレットを渡してください。
基本的な使い方
サンドボックス内で実行されるプロセスで値を使用できるようにするには、Sandbox.run に environment_variables 辞書を渡します。
セッションレベルのデフォルト
複数のサンドボックスで同じ変数を使う場合は、サンドボックスごとに繰り返し定義する代わりに、セッションで一度だけ定義できます。個々のサンドボックスでは、セッションのデフォルトを上書きしたり、独自の変数を追加したりできます。
リモート関数
リモート関数はセッションの環境変数を継承するほか、@session.function デコレーターで独自の環境変数を宣言することもできます。SDK は呼び出し時に、関数レベルの変数をセッションのデフォルトとマージします。
環境変数は参照渡しされます。次の例に示すように、デコレート後に辞書へ加えた変更は、以降の関数の Call に反映されます。