Подключиться к DynamoDB из Lambda даже проще, чем вы можете себе представить.

Во-первых, вам нужно создать роль выполнения, которую позже вы сможете прикрепить к лямбда-функции. Для этого:

  1. Войдите в IAM, выберите Роли в разделе Управление доступом на левой боковой панели, нажмите кнопку Создать роль.
  2. В разделе Выберите тип доверенного объекта выберите Сервис AWS и выберите Lambda в разделе Выберите вариант использования. .

3. Выберите политику/политики, которые вы хотите прикрепить к этой роли. Вы также можете создать настраиваемую политику для ограничения разрешения на доступ, кроме предоставления разрешения на запись/чтение для всех таблиц. Если вы не знаете, как создать настраиваемую политику, ознакомьтесь с этим руководством. Вы должны как минимум предоставить GetItem разрешение на чтение для таблиц, к которым вы хотите получить доступ в Lambda.

4. После добавления разрешений нажмите кнопку Далее: Теги.

5. Добавьте любое количество описательных пар тегов значения ключа по своему усмотрению, нажмите кнопку Далее: просмотр.

6. На странице обзора укажите имя для этой роли и, если хотите, описание роли, затем нажмите кнопку Создать роль.

Во-вторых, создайте лямбда-функцию. Для этого:

  1. нажмите кнопку Создать функцию.
  2. Укажите имя для этой новой функции в разделе основной информации.
  3. Нажмите Выбрать или создать роль выполнения в разделе разрешений, затем нажмите кнопку соотношения Использовать существующую роль и выберите созданную ранее политику, нажмите Создать функцию. кнопку.

Наконец, давайте подключимся к DynamoDB в этой функции Lambda. В файле index.js:

И это все! Интересно, что вам даже не нужно добавлять package.json, чтобы включить зависимость от aws-sdk. Вам также не нужно использовать метод AWS.config.update() для указания ключа доступа и секретного ключа, поскольку вы предоставили разрешение на доступ к DynamoDB для этой функции Lambda.