注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

ボリューム

ボリュームは、Compute Module のレプリカ内のコンテナ間でデータを共有する方法を提供します。ボリュームのサイズをコンテナのルートファイルシステムから独立させることで、ストレージをより効率的に利用できます。

ボリュームは一時的なものであり、レプリカの再起動をまたいでデータを保存しません。ボリュームのすべてのデータは、レプリカのライフサイクルに紐づいています。状態の永続化をボリュームに依存しないでください。

ボリュームは、異なるレプリカ間でデータを共有できません。各レプリカには、それぞれ独立したボリュームがあります。

対応するボリュームの種類

すべてのボリュームは一時的なものであり、永続的なストレージとしての利用を意図していません。対応するボリュームの種類は、空のディレクトリとコンテンツディレクトリの2つです。

空のディレクトリ

空のディレクトリボリュームは、レプリカの起動時に作成され、レプリカが存続する間存在します。初期状態では空です。このボリュームをマウントしたすべてのコンテナは、同じファイルを読み書きできます。レプリカが終了すると、コンテンツは削除されます。

同じレプリカ内のコンテナ間で実行時にデータを交換する必要がある場合は、空のディレクトリボリュームを使用します。

コンテンツディレクトリ

コンテンツディレクトリボリュームには、レプリカの起動時に、事前に定義されたファイルがあらかじめ読み込まれます。これは、環境固有の設定をアプリケーションコードから分離する場合に役立ちます。コンテンツディレクトリボリュームは読み取り専用です。

Compute Module を起動する前に、コンテンツを定義する必要があります。

コンテンツディレクトリボリュームのコンテンツの合計サイズは、100KB を超えることはできません。

ボリュームを作成する

  1. 設定タブに移動し、ボリュームのセクションまでスクロールします。

設定タブのボリューム設定セクション。

  1. ボリュームを追加を選択します。
  2. ボリュームの名前を決めます。名前は英字で始まる必要があり、小文字の英字、数字、ハイフンのみを使用できます。最大長は63文字です。
  3. デフォルトでは、空のディレクトリボリュームが作成されます。

コンテンツディレクトリの種類に変更する

ボリュームを空のディレクトリからコンテンツディレクトリに変更するには、次の手順を実行します。

  1. ボリュームを選択して設定を開きます。
  2. 種類を空のディレクトリからコンテンツディレクトリに変更します。

空のディレクトリとコンテンツディレクトリの選択肢がある、ボリュームの種類のドロップダウンセレクター。

  1. + 追加を選択してファイルを追加します。
  2. 名前項目にファイル名を入力し、コンテンツ項目にファイルのプレーンテキストの内容を入力します。
  3. 保存を選択します。

ファイルを追加するための名前とコンテンツの項目があるコンテンツディレクトリエディター。

ボリュームをコンテナにマウントする

ボリュームを作成した後、コンテナがそのボリュームにアクセスできるようにするには、コンテナにマウントする必要があります。

  1. コンテナセクションに移動します。
  2. ボリュームをマウントするコンテナを選択します。
  3. ボリュームマウントセクションを見つけます。

コンテナ設定パネルのボリュームマウントセクション。

  1. 追加を選択し、ボリュームを選択します。
  2. マウントパスを指定します。マウントパスは絶対パスである必要があり、ルートディレクトリは指定できません。たとえば、/mnt/data を指定します。
  3. 保存を選択します。

マウントパスの入力項目が表示されたボリュームマウント設定。

ユースケースの例

次の例では、オントロジーのオブジェクトを空のディレクトリボリュームにマウントし、同じレプリカ内での関数の実行をまたいでデータを保持する方法を示します。レプリカの起動時にボリュームに書き込みが行われ、それ以降の関数呼び出しでは、データを再読み込みする代わりにボリュームから読み取ります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 from compute_modules.annotations import function import os import json # 次のコードはレプリカの起動時に実行されます # /mount/osdk は空のボリュームへのパスとして設定されました osdk_object = load_ontology_object() write_to_empty_volume("/mount/osdk", osdk_object) def load_ontology_object(): # オントロジーオブジェクトを読み込むコード # 実際の読み込みロジックに置き換えます return {"example_key": "example_value"} def write_to_empty_volume(path, obj): os.makedirs(os.path.dirname(path), exist_ok=True) with open(path, 'w') as f: json.dump(obj, f) def read_from_volume(path): with open(path, 'r') as f: return json.load(f) # 再読み込みする代わりにボリュームから読み込む関数 @function def use_object_set(ctx, event): osdk_object = read_from_volume("/mount/osdk") # 必要に応じて osdk_object を使用します

制限事項

ボリュームを使用する際は、次の制限事項を確認してください。

  • 永続ボリュームには対応していません。すべてのボリュームは一時的なものであり、レプリカのライフサイクルに紐づいています。
  • レプリカの最大存続時間は22時間です。
  • レプリカは、プラットフォームによっていつでも置き換えられる可能性があります。
  • 状態の永続化をボリュームに依存しないでください。レプリカの再起動後も保持する必要があるデータには、Foundry データセットまたはプラットフォームのほかのストレージを使用してください。