Управление контейнерами с жидкостью
Контейнер — это атомарная единица хранения в службе Ретранслятора Жидкости Azure и представляет данные, хранящиеся в сеансе "Жидкость", включая операции и моментальные снимки. Среда выполнения "Жидкость" использует контейнер для восстановления состояния сеанса "Жидкость", когда пользователь присоединяется в первый раз или снова присоединяется после выхода.
При создании приложения с помощью Fluid Framework необходимо учитывать несколько аспектов, связанных с созданием и управлением контейнерами, как описано на этой схеме.
Основные понятия
Разрешения контейнера
В большинстве случаев разработчики хотят управлять инвентаризацией контейнеров и разрешений контейнера. К ним относятся сведения о том, кто имеет доступ к контейнерам, а также метаданные, такие как понятное имя контейнера.
Доступ к контейнерам
Контейнеры ссылаются на идентификатор контейнера. Прежде чем пользователь сможет создать или открыть контейнер, он должен запросить JWT, который среда выполнения жидкости будет использовать при взаимодействии со службой Ретранслятора Жидкости Azure. Любой процесс с допустимым JWT может получить доступ к контейнеру. Разработчик несет ответственность за создание JWTs для доступа к контейнерам, что позволяет им контролировать бизнес-логику, чтобы управлять доступом в соответствии с их сценарием. Служба Ретранслятора Azure не знает, какие пользователи должны иметь доступ к контейнеру. Дополнительные сведения об этом разделе см. в разделе о контракте токена Azure Fluid Relay
Примечание.
Идентификатор документа поля JWT соответствует идентификатору контейнера "Жидкость".
Именование контейнеров
Контейнеры называются службой Azure Fluid Relay во время создания контейнера. Действие "Создание" возвращает имя контейнера в виде GUID, который должен использоваться позже для открытия контейнера. В большинстве случаев разработчики хотят хранить идентификатор контейнера GUID, а также понятное имя в собственном хранилище данных для упрощения потоков обнаружения контейнеров.
Обнаружение контейнеров
Разработчики отвечают за любой опыт и бизнес-логику, связанную с обнаружением существующих контейнеров пользователей. Это может иметь вид просматриваемого списка контейнеров на основе участия пользователей в сеансе "Жидкость", прямого общего доступа к контейнерам между пользователями или программного назначения контейнеров существующим артефактам или процессам.
Пример потока создания контейнера
В этом примере приложение или страница загружается с помощью универсального JWT (не привязанного к конкретному контейнеру), которое клиентское приложение будет использовать при создании нового контейнера.
Клиентское приложение использует API Fluid Framework для создания нового контейнера в службе Azure Fluid Relay, которая приводит к объекту контейнера с новым идентификатором контейнера. Для дальнейшего взаимодействия с контейнером требуется новый JWT, содержащий идентификатор контейнера.
После создания нового контейнера клиент сохранит идентификатор контейнера в какой-то системе, которая сопоставляет контейнеры и пользователей с разрешениями. Эта система будет управлять любым интерфейсом обнаружения и просмотра контейнеров, которые разработчик хочет создать для своих пользователей.
Перед взаимодействием с контейнером клиент запрашивает JWT для конкретного контейнера, который будет использоваться для последующих вызовов из среды выполнения Fluid Framework в службу Ретранслятора Жидкости Azure.
Экспорт содержимого контейнера
Если приложение хранит данные, которые могут быть экспортированы конечными пользователями, разработчик приложения отвечает за создание функциональных возможностей экспорта в приложение, используя текущее состояние контейнера "Жидкость", представленное распределенными структурами данных, определенными в контейнере. Дополнительные сведения о подключении и открытии контейнеров "Жидкость" см. в разделе " Контейнеры" (fluidframework.com). Дополнительные сведения о перечислении и удалении контейнеров с помощью API плоскости управления см. в статье "Удаление контейнеров жидкости" на сервере Ретранслятора Microsoft Azure.