我们使用Serverless框架和Lambda代理集成方法将一个.NET 6 Web项目部署到API后面的AWS,以在Lambda中运行Web项目。我们通常将相应的SPAs托管在AWS S3之外,但我们决定通过wwwroot文件夹并在Startup.cs中使用UseStaticFiles()来包含/托管后端的角SPA的静态资产。此外,我们正在使用与我们的API相关联的自定义域名(例如dev.myapp.com)。
当我们用"/index.html“(例如https://dev.myapp.com/index.html)向我们的域发出请求时,我们成功地到达和使用了这个角度应用程序,但是当我们不包括"/index.html”(所以只有dev.myapp.com)时,我们得到了错误响应:
{"message":"Missing Authentication Token"}我认为这可能与Startup.cs中备用文件的配置有关,但这个错误似乎来自于API,而不是.NET应用程序本身。
似乎需要在API中配置一些东西,但还不清楚可能是什么。在serverless.yml中包含Web项目的Lambda函数配置如下:
functions:
backend-api:
handler: ABC.API::ABC.API.LambdaEntryPoint::FunctionHandlerAsync
description: ${self:custom.appConfig.config.stack-description} API for ${opt:stage}
memorySize: 512
runtime: dotnet6
tracing: Active
timeout: 30
events:
- http:
path: '/{proxy+}'
method: 'ANY'发布于 2022-03-30 00:29:47
解决方案是显式地为serverless.yml中的根'/‘添加一个额外的事件处理程序
functions:
backend-api:
handler: ABC.API::ABC.API.LambdaEntryPoint::FunctionHandlerAsync
description: ${self:custom.appConfig.config.stack-description} API for ${opt:stage}
memorySize: 512
runtime: dotnet6
tracing: Active
timeout: 30
events:
- http:
path: '/'
method: 'ANY'
- http:
path: '/{proxy+}'
method: 'ANY'我还在app.UseDefaultFiles();中的app.UseStaticFiles();之前添加了Startup.cs。
https://stackoverflow.com/questions/71621207
复制相似问题