Я интегрировал пулы пользователей AWS Cognito в свое приложение, как описано в этой статье: http://snevsky.com/blog/dotnet-core-authentication-aws-cognito, используя эти пакеты: AWSSDK.Core и AWSSDK.CognitoIdentityProvider.
В моей среде разработки это работает хорошо: я могу вызвать AdminInitiateAuthAsync для аутентификации пользователя и я могу вызвать SignUpAsync для создания нового пользователя. Другие методы тоже хорошо работают — в моей среде разработчик.
Однако, когда я развертываю свой код в Lambda, он не работает. В частности, он висит на этой строке:
var response = await cognito.AdminInitiateAuthAsync(request);
В конце концов, я получаю сообщение об ошибке в CloudWatch, говорящее Task timed out. Тем не менее, это не говорит мне, почему. Основываясь на моем прошлом опыте работы с Lambda и AWS, я предполагаю, что это проблема с разрешениями между Lambda и Cognito, но это всего лишь предположение.
Несколько вещей, которые я пробовал:
AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY. Однако Lambda не позволит вам установить эти конкретные ключи в качестве переменных среды. Итак, в качестве теста я попытался установить их явно в своем коде:var credentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
var region = RegionEndpoint.GetBySystemName("myRegionId");
var cognito = new AmazonCognitoIdentityProviderClient(credentials, region);
Любая помощь приветствуется.





Пара вещей:
Спасибо! Это сработало. Теперь мне просто нужно решить, хочу ли я платить за NAT (лямбда внутри VPC) или сделать свою БД общедоступной (лямбда вне VPC).