Fluid コンテナーの管理
コンテナーは、Azure Fluid Relay サービスのストレージのアトミック単位であり、操作とスナップショットを含む、Fluid セッションから格納されたデータを表します。 ユーザーが初めて参加したときと、離脱後に再参加したときに、Fluid セッションの状態をリハイドレートするために、Fluid ランタイムにはコンテナーが使用されます。
Fluid Framework を使用してアプリケーションを構築するときは、コンテナーの作成と管理に関して、次の図のようにいくつかの点を考慮する必要があります。
主要な概念
コンテナーのアクセス許可
ほとんどの場合、開発者にはコンテナーのインベントリとコンテナーのアクセス許可を管理することをお勧めします。 これには、コンテナーへのアクセス権を持っているユーザーに関する情報と、コンテナーのフレンドリ名などのメタデータが含まれます。
コンテナーへのアクセス
コンテナーはコンテナー ID を使用して参照されます。 ユーザーがコンテナーを作成する、または開く前に、Fluid ランタイムが Azure Fluid Relay サービスと通信するときに使用される JWT を要求する必要があります。 有効な JWT を持つ任意のプロセスからコンテナーにアクセスできます。 コンテナー アクセス用の JWT の生成は開発者側の担当です。こうすることで、ビジネス ロジックの管理下に置き、シナリオに応じて適切にアクセスを制御できるようになります。 Azure Fluid Relay サービス側では、コンテナーにアクセスできるユーザーを認識していません。 このトピックの詳細については、「Azure Fluid Relay トークン コントラクト」を参照してください。
Note
JWT フィールド documentID は、Fluid コンテナー ID に対応します。
コンテナーの名前付け
コンテナーは、コンテナーの作成時に Azure Fluid Relay サービスによって名前が付けられます。 作成アクションにより、後でコンテナーを開くために使用する必要がある GUID の形式でコンテナー名が返されます。 ほとんどの場合、コンテナー検出フローを容易にするために、開発者にはこのコンテナー ID GUID をフレンドリ名と共に独自のデータ ストアに格納することをお勧めします。
コンテナーの検出
ユーザーが既存のコンテナーを検出するためのエクスペリエンスとビジネス ロジックは、開発者側の担当です。 これは、Fluid セッションへのユーザーの参加に基づいた閲覧可能なコンテナー一覧、ユーザー間でのコンテナーの直接共有、既存の成果物またはプロセスにプログラムでコンテナーを割り当てるという形式の場合があります。
コンテナー作成フローの例
この例では、新しいコンテナーを作成するときに、クライアント アプリが使用する汎用 JWT (特定のコンテナーにバインドされていない) がアプリ/ページに読み込まれます。
クライアント側アプリは、Fluid Framework API を使用して Azure Fluid Relay サービスに新しいコンテナーを作成します。これにより新しく割り当てられたコンテナー ID を持つコンテナー オブジェクトが作成されます。 コンテナーとのやり取りをさらに行う場合は、コンテナー ID を含む新しい JWT が必要です。
クライアントによって新しいコンテナーが作成されると、コンテナーとユーザーをマップしてアクセス許可を管理する一部のシステムでは、ここにコンテナー ID が保存されます。 このシステムにより、開発者がユーザー用に作成するコンテナーの検出または閲覧エクスペリエンスが推進されます。
コンテナーと対話する前に、クライアントによって、Fluid Framework ランタイムから Azure Fluid Relay サービスへの後続の呼び出しに使用されるコンテナー固有の JWT が要求されます。
コンテナー コンテンツのエクスポート
アプリケーションでエンド ユーザーがエクスポートする必要がある可能性があるデータを保存する場合、アプリケーション開発者は、コンテナーで定義されている分散データ構造で表される Fluid コンテナーの現在の状態を使用して、アプリケーションにエクスポート機能を構築する責任を負います。 Fluid コンテナーへの接続と開く方法の詳細については、「Containers (fluidframework.com)」を参照してください。 コントロール プレーン API を使用したコンテナーの一覧と削除の詳細については、「Microsoft Azure Fluid Relay Server での Fluid コンテナーの削除」を参照してください。