Как получить доступ к дополнительным ресурсам AWS из созданной Amplify функции Lambda?

Я играл с AWS Amplify. Поскольку я относительно новичок в AWS, я большой поклонник того, как Amplify предоставляет мне необходимые ресурсы и роли IAM в AWS. Мой вопрос касается использования Lambda с GraphQL. Следуя документации, я могу создать собственный запрос GraphQL, который вызывает функцию Lambda и возвращает ответ GraphQL. Однако я не могу найти нигде в документации о том, как взаимодействовать с другими ресурсами AWS с помощью этой функции Lambda. Например, я хочу взаимодействовать с DynamoDB или даже службами RDS. В документации упоминается возможность извлекать данные из других ресурсов (например, из базы данных MySQL), поэтому я предполагаю, что это возможно.

Когда я пытался взаимодействовать с DynamoDB (например), я получал ошибку «доступ запрещен», и я предполагаю, что это связано с тем, что функция Lambda не имеет необходимой политики / разрешений для этого. Одна из моих идей заключалась в том, чтобы вручную войти в консоль IAM и самостоятельно прикрепить эти политики, но, учитывая, что Amplify генерирует все это для вас и по существу управляет вашей «облачной инфраструктурой / состоянием», я не уверен, что это правильный способ сделать это. . Я заметил шаблон Cloud Formation, который Amplify генерирует, когда вы добавляете ресурс Lambda для GraphQL, поэтому моей следующей догадкой было добавить туда политику DynamoDB, а затем запустить ampify push, чтобы Amplify сгенерировал и управлял политиками для меня. Если это правильный способ сделать это, я думаю, мне придется научиться писать шаблоны облачных форм. Наконец, мне интересно, мешает ли мой мозг, и могу ли я просто передать идентификационную информацию Cognito через AWS JavaScript SDK в Lambda, и тогда все будет просто «работать» — но я не совсем уверен. Заранее приношу свои извинения, если я использую неправильную терминологию — как я уже сказал, я относительно новичок в AWS. Любая помощь или направление приветствуются.

Источник: ledsshop.ru

Стиль жизни - Здоровье!