AWS LambdaObjet de contexte en C# - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS LambdaObjet de contexte en C#

Lorsque Lambda exécute votre fonction, il transmet un objet de contexte au gestionnaire. Cet objet fournit les propriétés avec des informations sur l'appel, la fonction et l'environnement d'exécution.

Propriétés du contexte
  • FunctionName – Nom de la fonction Lambda.

  • FunctionVersionVersion de la fonction.

  • InvokedFunctionArn – Amazon Resource Name (ARN) utilisé pour appeler la fonction. Indique si l'appelant a spécifié un numéro de version ou un alias.

  • MemoryLimitInMB – Quantité de mémoire allouée à la fonction.

  • AwsRequestId – Identifiant de la demande d'invocation.

  • LogGroupName – Groupe de journaux pour la fonction.

  • LogStreamName – Flux de journal de l'instance de fonction.

  • RemainingTime (TimeSpan) – Nombre de millisecondes restant avant l'expiration de l'exécution.

  • Identity – (applications mobiles) Informations sur l'identité Amazon Cognito qui a autorisé la demande.

  • ClientContext – (applications mobiles) Contexte client fourni à Lambda par l'application client.

  • Logger L'objet enregistreur d'événements pour la fonction.

Vous pouvez utiliser les informations contenues dans l'objet ILambdaContext pour générer des informations sur l'invocation de votre fonction à des fins de contrôle. Le code suivant montre comment ajouter des informations contextuelles à un cadre de journalisation structuré. Dans cet exemple, la fonction ajoute AwsRequestId aux sorties du journal. La fonction utilise également la propriété RemainingTime pour annuler une tâche en vol si le délai d'attente de la fonction Lambda est sur le point d'être atteint.

[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))] namespace GetProductHandler; public class Function { private readonly IDatabaseRepository _repo; public Function() { this._repo = new DatabaseRepository(); } public async Task<APIGatewayProxyResponse> FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context) { Logger.AppendKey("AwsRequestId", context.AwsRequestId); var id = request.PathParameters["id"]; using var cts = new CancellationTokenSource(); try { cts.CancelAfter(context.RemainingTime.Add(TimeSpan.FromSeconds(-1))); var databaseRecord = await this._repo.GetById(id, cts.Token); return new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = JsonSerializer.Serialize(databaseRecord) }; } finally { cts.Cancel(); return new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.InternalServerError, Body = JsonSerializer.Serialize(databaseRecord) }; } } }