Я создаю решение Desktop-on-Demand, используя продукт AWS Workspaces, и пытаюсь понять, какой сервис AWS лучше всего подходит для моих требований по управлению данными состояния для новых пользователей.
В двух словах, решение создаст новое AWS рабочее пространство (экземпляр виртуального рабочего стола) для пользователя, когда выполнены несколько условий и выполнены проверки. Эти задачи будут удовлетворяться несколькими лямбда-функциями.
DynamoDB будет использоваться в качестве центральной точки для хранения деталей данных конфигурации, таких как данные пользователя, данные групп пользователей и развернутые данные виртуальных рабочих столов. Logi c для создания рабочих столов будет реализован с использованием пошаговых функций, как показано ниже:
- Перехват событий происходит из системы Identity Management, запускающей лямбда-функцию, которая проверяет, существует ли рабочий стол пользователя в таблице DynamoDB
- Если он не существует, другая лямбда создает AWS AD соединитель
- Как только это будет сделано, другая лямбда при необходимости создает пользовательский образ для нового рабочего стола
- Другая лямбда извлекает последние данные из Identity Система управления и обновления таблицы DynamoDB для пользователей и групп.
- Другие лямбда-функции, которые могут запускаться как зависимости
Чтобы обеспечить механизм транзакций, мы разворачиваем новый рабочий стол только тогда, когда все условия выполнены. Я могу подумать о нескольких способах реализации этой проверки:
- Использование таблицы DynamoDB для хранения данных о состоянии. Когда все атрибуты в элементе находятся в ожидаемом состоянии, можно создать рабочий стол. Если какая-либо лямбда-ошибка или создает данные, которые не подходят, не создавайте рабочий стол.
- Просто используйте пошаговые функции и создайте логический c поток, которому должны удовлетворять все условия перед созданием рабочего стола
- Кто-то предложил использовать очередь SQS, но я не понимаю, как это можно использовать для моих целей.
Каков наилучший способ сохранить эти данные?