Prise en charge de plusieurs déclencheurs dans AWS Lambda avec Go
La création de fonctions AWS Lambda capables de répondre à plusieurs déclencheurs est un besoin courant. Cet article explique comment y parvenir dans Go à l'aide du SDK AWS.
Tentatives infructueuses
Au départ, deux tentatives ont été effectuées pour activer plusieurs déclencheurs :
Définir un événement séparé Gestionnaires :
Changement de type d'événement :
Solution : implémenter l'interface du gestionnaire AWS
L'interface AWS Handler fournit un moyen de gérer plusieurs événements avec une seule fonction Lambda. Il définit la méthode Invoke, qui reçoit des données d'événement brutes et renvoie une réponse.
Un exemple d'implémentation qui gère divers événements est présenté ci-dessous :
<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>
Considérations
Bien que la prise en charge de plusieurs déclencheurs dans Lambda soit possible, il est crucial de l'utiliser judicieusement. Les Lambdas sont conçus pour gérer efficacement des types spécifiques d'événements. La combinaison de plusieurs types d'événements nécessite un examen attentif et peut avoir un impact sur les performances et la fiabilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!