【发布时间】:2021-11-05 16:14:00
【问题描述】:
我有一个用作 Web 服务器的 AWS lambda(用 Ruby 编写)。我通过应用程序负载均衡器访问 lambda。以下代码适用于 html、javascript 和 css 文件。
{
statusCode: 200,
headers: {
'Content-Type' => "text/html"
},
body: File.open("index.html").read
}
我添加了尝试从 Lambda 返回二进制数据的代码。
{
statusCode: 200,
headers: {
'Content-Type' => 'image/x-icon'
},
isBase64Encoded: true,
body: Base64.encode64(IO.binread("favicon.ico"))
}
如果我通过负载平衡器调用 lambda,我会收到来自负载平衡器的“502 Bad Gateway”响应。负载平衡器日志显示以下内容。
"error_reason"="LambdaInvalidResponse"
如果我使用 aws lambda invoke 从命令行调用 lambda,我会看到我的 200 响应和预期的响应数据。
【问题讨论】:
标签: ruby aws-lambda base64 aws-application-load-balancer