Maison  >  Article  >  développement back-end  >  Comment prendre en charge plusieurs déclencheurs dans AWS Lambda avec Go ?

Comment prendre en charge plusieurs déclencheurs dans AWS Lambda avec Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 02:26:02422parcourir

How to Support Multiple Triggers in AWS Lambda with Go?

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 :

    • lambda.Start(ProcessIncomingS3Events)
    • lambda.Start(ProcessIncomingEvents)
    • Cependant, tous les déclencheurs appelés ProcessIncomingS3Events.
  • Changement de type d'événement :

    • lambda.Start(ProcessIncomingEvents)
    • ProcessIncomingEvents( événement interface{})
    • Cette approche a renvoyé « Impossible de trouver le type d'événement » pour tous les déclencheurs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn