AWS: подключиться к Нептуну из лямбды - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь подключиться к Нептуну с моей лямбды.Конфигурация Lambda содержит те же VPC, подсети и группы безопасности, что и мой экземпляр Нептуна.

Также роль выполнения лямбды имеет следующие политики: AmazonRDSFullAccess, AmazonRDSDirectoryServiceAccess, NeptuneFullAccess и AWSLambdaENIManagementAccess.

В любом случае у меня есть эта ошибка: Невозможно подключиться к удаленному серверу ---> System.Net.Http.HttpRequestException: Нет такого устройства или адреса --->

Я что-то пропустил?

Спасибо

1 Ответ

0 голосов
/ 04 октября 2018

Это определенно выглядит как проблема с подключением.Рекомендованный способ управления такими соединениями состоит в том, чтобы 2 имели 2 группы безопасности:

  1. client - группа безопасности, которую вы присоединяете ко всем клиентам, таким как Lambdas, экземпляры EC2 и т. Д. Правило исходящих сообщений по умолчанию дает вамисходящий доступ к каждому ресурсу в VPC.Вы можете усилить это, если хотите.
  2. db - Группа безопасности, которую вы должны присоединить к вашему кластеру Neptune.В этой группе безопасности отредактируйте входящие правила hte и явным образом добавьте правило TCP, разрешающее входящие подключения к порту вашей базы данных (порт по умолчанию - 8182).

Вы можете присоединить группу безопасности db к вашему кластеру либо во время создания, либо путем изменения существующих кластеров.

PS В качестве примечания, вашей Lambda действительно не нужны роли AmazonRDSFullAccess или NeptuneFullAccess, если только вы не планируете выполнять вызовы API управления от лямбды, как, например, отправлять запрос CreateDBCluster.Эти роли IAM на самом деле не имеют ничего общего с тем, что клиент может общаться с работающим кластером / экземпляром БД.

Надеюсь, это поможет.

...