Выполнение нескольких запросов DynamoDB с использованием лямбда-функции

#amazon-web-services #aws-lambda #amazon-dynamodb #aws-sdk

#amazon-веб-сервисы #aws-lambda #amazon-dynamodb #aws-sdk

Вопрос:

Мне нужно выполнить несколько запросов к dynamodb из моей функции dotnet lamba (например, GetItem и Query с использованием ключей partition и sort). Какой из них является лучшим способом?

  1. Выполнение последующих запросов в одном лямбда.
  2. Приходится писать отдельный лямбда-код для каждого запроса и вызывать его из другого лямбда-кода.
  3. Для использования функции step.

Комментарии:

1. «Лучший» по каким критериям? Вы пробовали какие-либо? Возникли какие-либо конкретные проблемы?

Ответ №1:

Это зависит. Нормально иметь несколько вызовов dynamodb в одной лямбда-функции, пока она выполняет только одно. Например, если у вас есть лямбда-функция, обслуживающая обновление ресурсов restful API, и вы хотите предоставить HTTP 404 - NotFound , можно сначала вызвать GetItem, а позже — updateItem. То же самое относится к тому, что вы выполняете пакетное обновление и «Выполняете запрос с использованием разделов и ключей сортировки».

Аналогично методам, обычно, когда у вас более одного уровня абстракции, ваша функция обычно выполняет слишком много. Разделение функций обеспечивает возможность повторного использования и упрощает тестирование.Например, если вы хотите обновить ресурс и отправить электронное письмо (для чего требуется «Запрос с использованием ключей разделения и сортировки»), вы определенно не хотите выполнять это с помощью одной и той же лямбда-функции. В этом случае использование пошаговой функции может оказаться хорошей идеей и сэкономить вам некоторое время, но, в конце концов, не должно иметь значения для обсуждения, следует ли вам использовать несколько лямбда-функций или нет.