第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Go 中創(chuàng)建 AWS Lambda 來(lái)處理多個(gè)事件

如何在 Go 中創(chuàng)建 AWS Lambda 來(lái)處理多個(gè)事件

Go
蕭十郎 2023-06-26 15:47:31
我需要實(shí)施 AWS Lambda 處理程序來(lái)處理 AWS S3Events 和 SNSEvent,有什么解決方案嗎?How to support more one trigger in AWS Lambda in Golang?但這對(duì)我不起作用。
查看完整描述

2 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

根據(jù)此文檔,您可以處理您的自定義事件。因此您可以創(chuàng)建包含 S3Entity 和 SNSEntity 的自定義事件

type Record struct {

? ?EventVersion? ? ? ? ?string? ? ? ? ? ?`json:"EventVersion"`

? ?EventSubscriptionArn string? ? ? ? ? ?`json:"EventSubscriptionArn"`

? ?EventSource? ? ? ? ? string? ? ? ? ? ?`json:"EventSource"`

? ?SNS? ? ? ? ? ? ? ? ? events.SNSEntity `json:"Sns"`

? ?S3? ? ? ? ? ? ? ? ? ?events.S3Entity? `json:"s3"`

}


type Event struct {

? ? Records []Record `json:"Records"`

}

然后檢查事件源


func handler(event Event) error {

? ?if len(event.Records) > 0 {

? ? if event.Records[0].EventSource == "aws:sns" {

? ? ? ?//Do Something

? ? } else {

? ? ? ?//Do Something

? ? }

? }


? return nil

}


查看完整回答
反對(duì) 回復(fù) 2023-06-26
?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

你可以使用 Go 中的嵌入來(lái)解決這個(gè)問(wèn)題

import (

? ? "github.com/aws/aws-lambda-go/events"

? ? "github.com/aws/aws-lambda-go/lambda"

? ? "reflect"

)


type Event struct {

? ? events.SQSEvent

? ? events.APIGatewayProxyRequest

? ? //other event type

}


type Response struct {

? ? events.SQSEventResponse `json:",omitempty"`

? ? events.APIGatewayProxyResponse `json:",omitempty"`

? ?//other response type

}


func main() {

? ? lambda.Start(eventRouter)

}


func eventRouter(event Event) (Response, error) {

? ? var response Response

? ? switch {

? ? case reflect.DeepEqual(event.APIGatewayProxyRequest, events.APIGatewayProxyRequest{}):

? ? ? ? response.SQSEventResponse = sqsEventHandler(event.SQSEvent)

? ? case reflect.DeepEqual(event.SQSEvent, events.SQSEvent{}):

? ? ? ? response.APIGatewayProxyResponse = apiGatewayEventHandler(event.APIGatewayProxyRequest)

? //another case for a event handler

? ? }

? ? return response, nil

}



func sqsEventHandler(sqsEvent events.SQSEvent) events.SQSEventResponse {

? ? //do something with the SQS event?

}


func apiGatewayEventHandler(apiEvent events.APIGatewayProxyRequest) events.APIGatewayProxyResponse {

? ? //do something with the API Gateway event

}

注意:如果基本事件有一些相同的字段名稱(chēng),您將需要尋找另一個(gè) DeepEqual 的比較方法實(shí)例。


查看完整回答
反對(duì) 回復(fù) 2023-06-26
  • 2 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)