Go を使用した AWS Lambda での複数のトリガーのサポート
複数のトリガーに応答できる AWS Lambda 関数の作成は、一般的なニーズです。この記事では、AWS SDK を使用して Go でこれを実現する方法について説明します。
失敗した試行
最初に、複数のトリガーを有効にするために 2 つの試行が行われました:
個別のイベント ハンドラーの定義:
Switching Event Types:
解決策: 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 中国語 Web サイトの他の関連記事を参照してください。