亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Amazon API Gateway HTTP API:go 中 lambda 函數中的自定義類型

Amazon API Gateway HTTP API:go 中 lambda 函數中的自定義類型

Go
慕萊塢森 2022-10-24 16:55:15
對于如何使用 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 網關,所謂的TInTOut是來自lambdaevent包的類型。引用包介紹:

此程序包為處理 AWS 事件的 Lambda 函數提供輸入類型。

在 API 網關的情況下,這將是events.APIGatewayProxyRequestand Response,或者可能是在 v1.16.0 中添加的Payload format version 2and events.APIGatewayV2HTTPRequestResponse

github repo README中的更多文檔(但不多)


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號