如何从AWS Lambda .Net Core应用程序API连接到AWS RDS SQL Server?

时间:2019-05-20 19:48:50

标签: sql-server amazon-web-services .net-core aws-lambda amazon-rds

我在S3中有一个Angular应用程序,在Lambda中调用了.Net Core应用程序。 Lambda .Net Core应用程序中的API针对RDS SQL Server运行。

当Lambda的.Net Core应用程序尝试与RDS进行交互时,我收到504错误,但如果我注释掉了调用数据库的C#代码,则不会收到504错误。

当我在本地运行Angular应用程序和.Net Core应用程序时,我可以很好地连接到AWS上的RDS数据库,这表明到RDS DB的连接字符串有效。 (本地IP地址与用于创建RDS SQL Server的地址相同。)

在本地不运行任何内容时,出现POST 504错误。进一步的信息说:CORS策略已阻止从源“ https://xxxxx.execute-api.us-east-1.amazonaws.com/Prod/api/myapi”访问“ https://example.com”处的XMLHttpRequest:在请求的资源上不存在“ Access-Control-Allow-Origin”标头。 / p>

要从Lambda .Net Core应用程序的api成功连接到SQL Server数据库,我该怎么做?

1 个答案:

答案 0 :(得分:0)

我不认为连接到RDS是您的问题,问题在于您的reactfiles与Lambda函数所在的域不在同一域。这导致504。 最快的解决方案是在服务器上设置CORS策略。您可以在api网关中轻松配置它。参见https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html#apigateway-responding-to-cors-preflight