我正在 AWS lambda 中创建一个处理程序,它为我的单页应用程序 (SPA) 返回一个文件。该函数运行速度很快(几毫秒)。但我仍然必须几乎同时运行多次,然后它们超时。我的超时时间是 60 秒。我认为这与 docker 有关,但我不太确定。有什么我可以做的吗?
这是我的代码:pastebin.com/TdqAu3Gx
!与执行时间相比,即使使用其他函数也需要更多时间来获得响应。
编辑:
一段时间后,我在 Netlify 上发布了前端。但是在做了一些功能之后,我遇到了同样的错误。fowoling 代码在 aws sam local 中工作。
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
type MyReq struct {
Username string `json:"username"`
}
func handler(m events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
// log.Println(m.Username)
fmt.Println("\n\n", m.Body, "\n\n")
return events.APIGatewayProxyResponse{
Body: m.Body,
}, nil
}
func main() {
lambda.Start(handler)
}
但在实际中不起作用的是 lambda。(它有效,但我得到了完整的 json,因为 exaple 标头的文本未在响应中设置,但我可以将它们视为正文中的文本)。如果我分别更改events.APIGatewayProxyResponse
and events.APIGatewayProxyRequest
toMyRequest
和一个字符串,它在 lambda 中工作,但在 sam local 中超时。在我的template.json
下面Resources
我有:
"TestFunction": {
"Type": "AWS::Serverless::Function",
"Properties": {
"CodeUri": "MY_BUCKET",
"Handler": "testf",
"Role": "My Lambda role",
"Events": {
"RegisterEvent": {
"Type": "Api",
"Properties": {
"Path": "/testf",
"Method": "POST"
}
}
}
}
}
如何使代码同时在 AWS Lambda 和 SAM Local 上运行?如果有人有一个可以在 SAM 和 AWS 上运行并且可以开源的 sam 应用程序的工作模板,我将非常感激。