【发布时间】:2019-11-26 23:12:03
【问题描述】:
在 Api-Gateway 上,我正在尝试设置从“方法请求”查询字符串到“集成请求”标头到 lambda 的映射,但映射永远不会到达 lambda 函数。
在 'Method Request' > 'URL Query String Parameters' 我设置了名字 'customerIdentification'
然后正如文档所说:doc
转到“集成请求”>“HTTP标头”添加名称“userId”并映射到“method.request.querystring.customerIdentification”
package main
import (
"context"
"encoding/json"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func handleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
fmt.Printf("Processing request data for request %s.\n", request.RequestContext.RequestID)
fmt.Printf("Body size = %d.\n", len(request.Body))
fmt.Println("Headers:")
for key, value := range request.Headers {
fmt.Printf(" %s: %s\n", key, value)
}
xxx, err := json.Marshal(request.Headers)
if err != nil {
fmt.Println("*** err *** err *** err *** err *** err ")
fmt.Println(err)
fmt.Println("*** err *** err *** err *** err *** err ")
}
return events.APIGatewayProxyResponse{Body: string(xxx), StatusCode: 200}, nil
}
func main() {
lambda.Start(handleRequest)
}
我希望在 golang lambda 函数代码上我可以从“request.Headers”中检索“userId”。
但它总是空的
【问题讨论】:
-
尝试检查
json.Marshal()语句返回的错误 -
刚才又做了一次,因为你问了,cloudwatch 上没有错误
标签: amazon-web-services go aws-lambda aws-api-gateway