Maison > développement back-end > Golang > Comment détecter les appels de préchauffage dans une fonction Go AWS Lambda à l'aide du plug-in WarmUp sans serveur ?

Comment détecter les appels de préchauffage dans une fonction Go AWS Lambda à l'aide du plug-in WarmUp sans serveur ?

王林
Libérer: 2024-02-05 23:42:07
avant
528 Les gens l'ont consulté

如何使用无服务器 WarmUp 插件检测 Go AWS Lambda 函数中的预热调用?

Contenu de la question

J'utilise le plugin Serverless WarmUp pour garder mes fonctions Go AWS Lambda au chaud. Je dois détecter quand un plugin appelle une fonction Lambda afin de pouvoir renvoyer une réponse spécifique. Comment détecter correctement les appels d’échauffement dans le code Go ?


Bonne réponse


Vous pouvez détecter les appels d'échauffement dans les fonctions go aws lambda en inspectant le contexte client, ce qui peut être effectué à l'aide du package lambdacontext dans le SDK go d'aws lambda. L'extrait de code ci-dessous montre comment procéder :

package main

import (
    "context"
    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
    "github.com/aws/aws-lambda-go/lambdacontext"
)

func HandleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    lc, _ := lambdacontext.FromContext(ctx)
    if lc.ClientContext.Custom["source"] == "serverless-plugin-warmup" {
        return events.APIGatewayProxyResponse{Body: "Lambda is warm!", StatusCode: 200}, nil
    }

    // ... other function logic ...

    // Default response for demonstration
    return events.APIGatewayProxyResponse{
        StatusCode: 200,
        Body:       "Hello from Go Lambda!",
    }, nil
}

func main() {
    lambda.Start(HandleRequest)
}
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal