【问题标题】:How do I connect to AWS RDS SQL Server from AWS Lambda .Net Core application API?如何从 AWS Lambda .Net Core 应用程序 API 连接到 AWS RDS SQL Server?
【发布时间】:2019-10-07 04:45:46
【问题描述】:

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

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

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

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

如何才能从我的 Lambda .Net Core 应用程序的 api 成功连接到我的 SQL Server 数据库?

【问题讨论】:

  • 您需要为您的问题添加详细信息,例如 Lambda 函数是否在 VPC 中运行?和 RDS 实例是同一个 VPC 吗?您是否为 Lambda 函数配置了安全组并授予该组对 RDS 实例的访问权限?发生错误时,Lambda 函数的 CloudWatch Logs 中是否有任何日志消息?

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


【解决方案1】:

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

【讨论】:

  • Lambda 函数在 Angular 中运行良好,除非该 Lambda 函数尝试连接到 RDS。我在帖子中提到过。
猜你喜欢
  • 2017-12-13
  • 2020-04-19
  • 2017-11-15
  • 2017-10-12
  • 1970-01-01
  • 2021-08-11
  • 2021-06-10
  • 2021-09-21
  • 1970-01-01
相关资源
最近更新 更多