Для тех, у кого похожий опыт, я получил приведенный ниже ответ службы поддержки AWS с некоторыми полезными ссылками. Это не решило мою проблему, но теперь я понимаю, что это в основном связано с низким (тестовым) объемом и временем запуска лямбды.
1) Является ли это обычным временем запроса для таблицы, содержащей только 3 элемента, где у каждого пользователя есть максимум 5 атрибутов (включая вложенные)?
Время медленное, но может быть связано с рядом факторов, основанных на вашей настройке. Поскольку вы используете лямбду, вы должны помнить, что каждый раз, когда вы запускаете лямбда-функцию, она настраивает вашу среду, а затем выполняет код. Лямбда-функция AWS выполняется в контейнере - среде выполнения, изолированной от других функций. Когда вы запускаете функцию в первый раз, AWS Lambda создает новый контейнер и начинает выполнять код функции. Лямбда-функция имеет обработчик, который выполняется один раз за вызов. После выполнения функции AWS Lambda может выбрать повторное использование контейнера для последующих вызовов этой функции. В этом случае ваш обработчик функций может повторно использовать ресурсы, которые вы определили в своем коде инициализации. (Обратите внимание, что вы не можете контролировать, как долго AWS Lambda будет удерживать контейнер или будет ли контейнер повторно использоваться.) Ваш стол действительно маленький, я посмотрел на него. [1]
2) Можно ли ожидать аналогичного времени, если структура останется прежней, но количество элементов (пользователей) увеличится в сто раз?
Если выполнение кода занимает больше времени и у вас есть больше данных в DynamoDB, со временем он может замедлиться, опять же в зависимости от ваших настроек.
Некоторые из моих рекомендаций по оптимизации вашей настройки.
1) Иметь Lambda и DynamoDB в одном и том же VPC. Вы можете запросить свой DynamoDB через конечную точку VPC. Это исключит сетевые задержки. [2] [3]
2) Увеличение памяти лямбды для ускорения запуска и выполнения.
3) По мере масштабирования вашего приложения. Обязательно включите автоматическое масштабирование в таблице DynamoDB, а также увеличьте RCU и WCU, чтобы улучшить производительность DynamoDB при обработке запросов. [4]
Кроме того, ознакомьтесь с рекомендациями DynamoDB. [5]
Пожалуйста, не стесняйтесь обращаться ко мне с любыми дополнительными вопросами и для дальнейшего руководства. Спасибо. Хорошего вам дня. Хорошего дня.
Ссылки
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.BestPracticesWithDynamoDB.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/vpc-endpoints-dynamodb.html
- https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html