對于如何使用 golang 并坐在HttpApi后面將自定義類型傳遞到我的 Lambda 函數中,我有點困惑??紤]以下 go lambda 處理程序,它幾乎是文檔中示例的副本。type MyRequestType struct { Name string `json:"name"` Age int `json:"age"`}type MyResponseType struct { Message string `json:"message"`}func handler(request MyRequestType) (MyResponseType, error) { log.Printf("received request: %v", request) return MyResponseType{Message: fmt.Sprintf("Hello %s, you are %d years old!", request.Name, request.Age)}, nil}func main() { lambda.Start(handler)}結果消息始終如下。{ "message": "Hello , you are 0 years old!"}我有一種轉儲的感覺,這是不可能的Amazon API Gateway HTTP API。但我也沒有找到任何文件指出這是不可能的。所以我真的想知道,如果我做錯了什么?該文檔還說明了有關有效簽名的一些信息:例如func (context.Context, TIn) (TOut, error)如果我使用的HTTP API是Payload format version 2:是context.Context普通的golangcontext還是特別的?我在想events.APIGatewayV2HTTPRequestContext或其他人。TInand TOut=> events.APIGatewayV2HTTPRequestand的正確類型是events.APIGatewayV2HTTPResponse什么?
1 回答

青春有我
TA貢獻1784條經驗 獲得超8個贊
context.Context 是不是普通的golang上下文
是的。
但是您可以獲得lambdacontext.FromContext
包含額外 lambda 特定元數據的 Lambda 上下文。
什么是正確的 TIn 和 TOut 類型
這取決于誰調用了 Lambda。當 Lambda 被另一個 AWS 服務調用時,包括 API 網關,所謂的TIn
和TOut
是來自lambdaevent
包的類型。引用包介紹:
此程序包為處理 AWS 事件的 Lambda 函數提供輸入類型。
在 API 網關的情況下,這將是events.APIGatewayProxyRequest
and Response
,或者可能是在 v1.16.0 中添加的Payload format version 2
and events.APIGatewayV2HTTPRequest
。Response
github repo README中的更多文檔(但不多)
- 1 回答
- 0 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消