Maison > développement back-end > Golang > 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
Libérer: 2024-11-03 02:26:02
original
502 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal