如何在Go中创建AWS Lambda以处理多个事件
问题描述:
I need to implement the AWS Lambda handler to handle AWS S3Events & SNSEvent, any solution?
Already I checked this answer, How to support more than one trigger in AWS Lambda in Golang?
But that's doesn't work for me.
答
According to this document you could hanlde your custom event. So you can create custom event which includes S3Entity and 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"`
}
Then check the EventSource
func handler(event Event) error {
if len(event.Records) > 0 {
if event.Records[0].EventSource == "aws:sns" {
//Do Something
} else {
//Do Something
}
}
return nil
}