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

Comment prendre en charge efficacement plusieurs déclencheurs dans votre fonction AWS Lambda avec Golang ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 09:03:02333parcourir

How to Effectively Support Multiple Triggers in Your AWS Lambda Function with Golang?

Prise en charge de plusieurs déclencheurs dans AWS Lambda avec Golang

Problème

Lors du développement d'une fonction AWS Lambda dans Golang, il peut être nécessaire de prendre en charge plusieurs déclencheurs , comme S3 et SQS. Cependant, sa mise en œuvre peut être difficile, car les tentatives initiales décrites dans la question conduisent souvent à un comportement inattendu.

Solution

Pour prendre en charge efficacement plusieurs déclencheurs, il est recommandé d'implémenter l'interface AWS Handler, qui définit la méthode Invoke avec la signature suivante :

Invoke(ctx context.Context, payload []byte) ([]byte, error)

En implémentant l'interface Handler, votre fonction peut recevoir et traiter des données d'événement brutes provenant de diverses sources AWS. Voici un exemple de gestionnaire multi-événements :

<code class="go">type Handler struct {
  // Add global variables or context information here
}

func (h Handler) Invoke(ctx context.Context, payload []byte) ([]byte, error) {
  // Parse the data as different event types for demonstration purposes

  apiGatewayEvent := new(events.APIGatewayProxyRequest)
  if err := json.Unmarshal(payload, apiGatewayEvent); err != nil {
    log.Println("Not a API Gateway event")
  }

  snsEvent := new(events.SNSEvent)
  if err := json.Unmarshal(payload, snsEvent); err != nil {
    log.Println("Not an SNS event")
  }

  // Handle the events as needed

  return nil, nil
}

func main() {
  lambda.StartHandler(Handler{})
}</code>

Cette approche permet à votre Lambda de recevoir et de traiter des événements de plusieurs services AWS. Cependant, il est important de déterminer attentivement si un gestionnaire multi-événements s'aligne sur l'architecture de votre application, car les fonctions Lambda sont généralement conçues pour gérer un type d'événement spécifique.

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