Maison  >  Article  >  développement back-end  >  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 ?

王林
王林avant
2024-02-05 23:42:07471parcourir

如何使用无服务器 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)
}

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Trancher ou trancher dans GoArticle suivant:Trancher ou trancher dans Go