AWS Lambda не может подключиться к хранилищу параметров

У меня есть AWS Lambda (Java), и я пытаюсь сделать тест, чтобы восстановить пароль, хранящийся в хранилище параметров. Вот мой кусок кода:

GetParameterRequest parameterRequest = new GetParameterRequest();
        AWSSimpleSystemsManagement client = AWSSimpleSystemsManagementClientBuilder.defaultClient();
        parameterRequest.withName("my-password-key")
                .setWithDecryption(true);
        GetParameterResult parameterResult = client.getParameter(parameterRequest);
        password = parameterResult.getParameter().toString();

security groupNACL) связанный с моей лямбда имеет все входящие и исходящие открытые (любой порт и любой IP-адрес).

Моя лямбда запускается в частной подсети.

Когда я выполняю лямбду (вызванную событием шлюза API), у меня появляется следующая ошибка:

Unable to execute HTTP request: Connect to ssm.eu-central-1.amazonaws.com:443 [ssm.eu-central-1.amazonaws.com] failed: connect timed out: com.amazonaws.SdkClientException

Поскольку ошибка связана с ошибкой тайм-аута, я думаю, что это не проблема роли.

Я понятия не имею, где искать. Любая помощь приветствуется.

Благодарю.

CC

1 ответ

Решение

Доступ к Интернету требуется при вызове API AWS.

Есть два способа дать доступ лямбда-функции к Интернету:

  • Не присоединяйте лямбда-функцию к VPC, или
  • Присоедините функцию Lambda к частной подсети и настройте частную подсеть для маршрутизации интернет-трафика через шлюз NAT (или экземпляр NAT) в общедоступной подсети.

Таким образом, если лямбда-функции не требуется доступ к каким-либо ресурсам в VPC, просто удалите ее из VPC. Если ему нужен доступ, добавьте шлюз NAT.

Другие вопросы по тегам