Как подключиться к AWS RDS SQL Server из API-интерфейса AWS Lambda .Net Core? - PullRequest
0 голосов
/ 20 мая 2019

У меня есть приложение Angular в S3, которое вызывает приложение .Net Core в Lambda. API в приложении Lambda .Net Core работает с RDS SQL Server.

Я получаю ошибку 504, возвращенную приложением .Net Core в Lambda, когда оно пытается взаимодействовать с RDS, но нет, если я закомментирую код C #, который вызывает базу данных.

Я могу нормально подключиться к базе данных RDS на AWS, когда я запускаю приложение Angular и приложение .Net Core локально, что показывает, что строка подключения к базе данных RDS работает. (Локальный IP-адрес совпадает с используемым для создания RDS SQL Server.)

Когда ничего не выполняется локально, я получаю сообщение об ошибке POST 504. Дополнительная информация гласит: Доступ к XMLHttpRequest по адресу https://xxxxx.execute -api.us-east-1.amazonaws.com / Prod / api / myapi 'origin' https://example.com' заблокирован Политика CORS: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Что мне нужно сделать, чтобы успешно подключиться к моей базе данных SQL Server из API моего Lambda .Net Core приложения?

1 Ответ

0 голосов
/ 21 мая 2019

Я не думаю, что подключение к RDS - это ваша проблема, проблема в том, что ваши реактивные файлы не находятся в том же домене, что и функция Lambda.Это приводит к 504. Самым быстрым решением является установка политики CORS на сервере.Вы можете легко настроить это в API-шлюзе.Смотри https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html#apigateway-responding-to-cors-preflight

...