このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。コードノードは、カスタム Python または JavaScript を実行して、ワークフロー内で複雑なデータ変換、計算、ロジックを処理します。事前設定されたノードが特定の処理ニーズに十分でない場合に使用してください。

サンドボックスサービス
コードノードはsandbox サービスに依存します。このサービスは標準の Docker Compose デプロイに定義されており、スタックの他のコンポーネントとともに自動的に起動します。
docker/envs/core-services/sandbox.env.example の SANDBOX_* 環境変数(ワーカーのタイムアウト、SSRF プロキシ経由のネットワークアクセス、ポート)と、docker/envs/core-services/shared.env.example の CODE_* 変数(API が参照する出力制限)を使用します。
設定
入力変数 を定義してワークフロー内の他のノードからデータにアクセスし、これらの変数をコード内で参照します。関数は、宣言した出力変数 を含む辞書を返す必要があります。言語サポート
ニーズと習熟度に基づいて、Python と JavaScript から選択できます。どちらの言語も、データ処理用の一般的なライブラリにアクセス可能な安全なサンドボックス内で実行されます。- Python
- JavaScript
Python には
json、math、datetime、reなどの標準ライブラリが含まれています。データ分析、数学的演算、テキスト処理に最適です。エラーハンドリングと再試行
失敗したコード実行に対する自動再試行動作を設定し、コードがエラーに遭遇した場合のフォールバック戦略を定義します。

出力検証と制限
コード出力は、API コンテナに設定された制限値に対して検証されます。- 文字列:最大長は
CODE_MAX_STRING_LENGTH(デフォルト 400,000 文字)で設定します。null バイトは除去されます。 - 数値:範囲は
CODE_MAX_NUMBERとCODE_MIN_NUMBER(デフォルトは int64 の範囲)で設定します。浮動小数点の精度はCODE_MAX_PRECISION(デフォルト 20 桁)で設定します。 - オブジェクトと配列:ネストの最大深度は
CODE_MAX_DEPTH(デフォルト 5)で設定します。配列サイズはCODE_MAX_STRING_ARRAY_LENGTH、CODE_MAX_OBJECT_ARRAY_LENGTH、CODE_MAX_NUMBER_ARRAY_LENGTHで設定します。
docker/envs/core-services/shared.env.example に定義されています。出力サイズを抑えたい場合は制限を厳しくし、より大きなペイロードを正当に生成するワークフローでは緩めてください。
セキュリティ上の考慮事項
コードは、ファイルシステムへのアクセス、ネットワークリクエスト、システムコマンドを防ぐ厳格なサンドボックス内で実行されます。これにより、プログラミングの柔軟性を提供しながらセキュリティが維持されます。 セキュリティ上の理由から、一部の操作は自動的にブロックされます。システムファイルへのアクセスや潜在的に危険な操作の実行を試みることは避けてください。デフォルトでは、サンドボックス化されたコードからの外部ネットワーク呼び出しは SSRF プロキシ経由でルーティングされます。サンドボックス化されたコードからのネットワークアクセスを完全に無効にするには、SANDBOX_ENABLE_NETWORK=false を設定してください。