我是刚到戈朗来的。我似乎无法提供使用adapter.ProxyWithContext所需的论据。根据这个https://pkg.go.dev/github.com/awslabs/aws-lambda-go-api-proxy@v0.13.0/gorillamux#GorillaMuxAdapter.ProxyWithContext,它应该接受API代理事件或API V2事件。
import (
"context"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
routerProxy "github.com/awslabs/aws-lambda-go-api-proxy/gorillamux"
)
var adapter *routerProxy.GorillaMuxAdapter
func main() {
cfg := config.NewConfig()
s := app.NewApp(cfg, log)
adapter = routerProxy.New(s.SetupRoutes())
lambda.Start(lambdaHandler) // execute lambda and the specific lead handler
}
func lambdaHandler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
c, err := adapter.ProxyWithContext(ctx, req)
return c, err
}
i'm having this error:
``var req events.APIGatewayProxyRequest
cannot use req (variable of type events.APIGatewayProxyRequest) as core.SwitchableAPIGatewayRequest value in argument to adapter.ProxyWithContextcompilerIncompatibleAssign发布于 2022-03-24 22:25:51
正如批注mkopriva所指出的,您不能直接将events.APIGatewayProxyRequest传递给adapter.ProxyWithContext。
您需要创建SwitchableAPIGatewayRequest的新实例并将其传递给ProxyWithContext。
这应该可以解决您的问题:
import "github.com/awslabs/aws-lambda-go-api-proxy/core"
[...]
func lambdaHandler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
return adapter.ProxyWithContext(ctx, *core.NewSwitchableAPIGatewayRequestV1(&req))
}https://stackoverflow.com/questions/71604856
复制相似问题