fir*_*ter 5 microservices aws-lambda asp.net-core
AWS 新手..
我们有一个 .NET Core 微服务作为 lambda 函数在无服务器 aws 实例上运行。
我们的控制器看起来像这样
[Route("api/[controller]")]
[ApiController]
public class SomeController : ControllerBase
{
[HttpGet()]
[Route("getsomedoc")]
public async Task<IActionResult> GetSomeDoc()
{
byte[] content;
//UI needs this to process the document
var contentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
contentDisposition.FileName = "File Name";
Response.Headers[HeaderNames.ContentDisposition] = contentDisposition.ToString();
return File(content, "application/octet-stream");
}
[HttpPost()]
[Route("somepost")]
public async Task<IActionResult> SomePost()
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
网址
{{URL}}/getsomedoc
{{URL}}/somepost
Run Code Online (Sandbox Code Playgroud)
我们已在 AWS 包设置中启用“二进制媒体类型”,以便getsomedoc 正常工作,否则它将返回字节数组而不是文件。
但是,当 UI 使用 Method: OPTIONS & Access-Control-Request-Method as POST 访问 API 时,这会破坏我们的“ somepost ”调用
当我们删除二进制媒体类型时,“ somepost ”开始工作。
寻找关于为什么会发生这种情况的建议?我们可以从网关添加/删除什么来解决这个问题。
好吧,我们最终以一种奇怪的方式解决了这个问题。
为 lambda 添加了两个网关 - 其中一个网关已启用二进制 - 另一个网关已禁用。
对于 getsomedoc - 使用启用了二进制媒体类型的一个 postsomedoc - 使用另一个
希望有更好的办法!!
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |