DB Dynamo: вставка данных при создании таблицы с помощью лямбда-функции - PullRequest
0 голосов
/ 06 мая 2019

У меня есть лямбда-функция, которую я использую для создания таблицы DynamoDB.

У меня есть требование, в котором мне нужно вставить некоторые данные в эту таблицу после ее создания.

В DynamoDB, Create table - это асинхронный вызов.Пока таблица создается, она находится в состоянии "CREATING" и после этого переходит в состояние "ACTIVE".

Проблема в том, что я не могу вставить данные в эту таблицу, пока она не будетв состоянии "ACTIVE" и я получаю исключение ResourceNotFoundException.

Можно ли как-нибудь вставить эти данные в таблицу при ее создании?

Я хочу завершить создание таблицыи вставка данных в тот же самый вызов функции Lambda.

1 Ответ

1 голос
/ 06 мая 2019

Как вы обнаружили, вы можете писать только в активную (/ созданную) таблицу, и нет способа предоставить данные для «предварительной загрузки» вашей таблицы, используя dynamicodb :: CreateTable .

Нет событий, когда таблица готова. Так что вместо этого вам придется опрашивать, пока таблица не станет активной. Это должно быть легко достигнуто в лямбде, так как DynamoDB редко занимает более 30-60 секунд для подготовки таблицы.

После создания таблицы вы можете вызывать dynamicodb :: DescribeTable каждую секунду (или около того) и ждать, пока она не вернет Table.TableStatus === 'ACTIVE'. Как только статус таблицы станет активным, вы можете вставить свои исходные данные. Просто не забудьте увеличить время ожидания лямбды до полных 15 минут, на случай если AWS потребуется больше времени для подготовки вашего стола.

Пример этого можно увидеть в документации AWS .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...