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

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

如何在 go1.x 的 lambda 容器映像中將解組事件用于 AWS 定義的類型,并提供為基礎

如何在 go1.x 的 lambda 容器映像中將解組事件用于 AWS 定義的類型,并提供為基礎

Go
慕虎7371278 2022-10-17 15:52:04
我使用 API Gatway 通過代理集成觸發 Lambda我從 public.ecr.aws/lambda/provided:al2 為 Golang 構建了一個 lambda 容器映像,因為無法在 public.ecr.aws/lambda/go:latest 中安裝依賴關系。Docerfile我的內容的 PFBFROM public.ecr.aws/lambda/provided:al2COPY ./config/yumrepo/dep1.repo /etc/yum.repos.d/dep1.repoCOPY ./config/yumrepo/dep2.repo /etc/yum.repos.d/dep2.repoRUN yum install -y dep1 dep2COPY --from=build /main /var/runtime/bootstrap # If I dont copy to bootstrap the lambda is not starting upCMD [ "handler" ]我面臨的問題是事件處于編組狀態。如果我對預期函數的 lambda 進行 api 調用,events.APIGatewayProxyRequest由于輸入的類型是map[string]interface{}.我的猜測是,這與運行時接口客戶端和引導程序有關。我從AWS Lambda 指南中獲得了相同的以下參考AWS 沒有為 Go 提供單獨的運行時接口客戶端。aws-lambda-go/lambda 包包含運行時接口的實現。上面的圖像得到構建,并使用以下代碼使 API 工作。func (h *Handler) HandleRequest(ctx context.Context, request interface{}) (interface{}, error) {    requestMap := request.(map[string]interface{})    _, ok := getMapValue(requestMap, "headers")    if ok {        httpMethod, _ := getStringValue(requestMap, "httpMethod")        resource, _ := getStringValue(requestMap, "resource")        body, _ := getStringValue(requestMap, "body")        requestObj := events.APIGatewayProxyRequest{            Body:            body,            IsBase64Encoded: false,            Resource:        resource,            HTTPMethod:      httpMethod,        }        return h.HandleAPIRequest(ctx, requestObj)    }    return nil, fmt.Errorf("unknown request type")}這是構建圖像的正確方法以及如何在我的代碼中以 AWS 定義的類型接收事件嗎?
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

發現問題

因為處理函數期望interface在我將參數 的類型更改為我的代碼自動開始以這種類型接收之后request傳遞。map[string]interface{}requestevents.APIGatewayProxyRequest


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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