使用Go 支援AWS Lambda 中的多個觸發器
建立可以回應多個觸發器的AWS Lambda 函數是一種常見需求。本文探討如何使用 AWS SDK 在 Go 中實現此目的。
嘗試失敗
最初,進行了兩次嘗試來啟用多個觸發器:
定義單獨的事件處理程序:
切換事件類型:
解決方案:實施AWS 處理程序介面
AWS 處理程序介面提供了一種使用單一Lambda 函數處理多個事件的方法。它定義了 Invoke 方法,該方法接收原始事件資料並回傳回應。
<code class="go">import ( "context" "encoding/json" "github.com/aws/aws-lambda-go/events" "log" ) type Handler struct {} func (h Handler) Invoke(ctx context.Context, data []byte) ([]byte, error) { // Create and unmarshal event objects apiGatewayEvent := new(events.APIGatewayProxyRequest) json.Unmarshal(data, apiGatewayEvent) snsEvent := new(events.SNSEvent) json.Unmarshal(data, snsEvent) // Handle events as needed return nil, nil } func main() { lambda.StartHandler(Handler{}) }</code>下面提供了處理各種事件的範例實作:
注意事項雖然Lambda 可以支援多個觸發器,但明智地使用它至關重要。 Lambda 旨在有效地處理特定類型的事件。混合多種事件類型需要仔細考慮,並且可能會影響效能和可靠性。
以上是如何使用 Go 支援 AWS Lambda 中的多個觸發器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!