Invoquer des fonctions Lambda durables - 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.

Invoquer des fonctions Lambda durables

Les fonctions Lambda durables peuvent être invoquées en utilisant les mêmes méthodes que les fonctions Lambda par défaut, mais avec des considérations importantes pour les exécutions de longue durée. Cette section couvre les modèles d'invocation, la gestion de l'exécution et les meilleures pratiques pour des fonctions durables.

Limites d'invocation synchrone

Les appels synchrones de fonctions Lambda durables sont limités à 15 minutes, comme les fonctions Lambda par défaut. Si votre fonction durable doit s'exécuter pendant plus de 15 minutes, elle doit être invoquée de manière asynchrone.

Quand utiliser l'invocation synchrone : optez pour des fonctions durables qui s'exécutent en 15 minutes et lorsque vous avez besoin de résultats immédiats, telles que des flux de travail d'approbation rapides ou des tâches de traitement de données courtes.

Invocation asynchrone pour les flux de travail de longue durée

Pour les fonctions durables qui peuvent s'exécuter pendant plus de 15 minutes, utilisez l'invocation asynchrone. Cela permet à la fonction de continuer à fonctionner pendant que votre client reçoit un accusé de réception immédiat.

TypeScript
import { LambdaClient, InvokeCommand } from "@aws-sdk/client-lambda"; const client = new LambdaClient({}); // Asynchronous invocation const command = new InvokeCommand({ FunctionName: "my-durable-function", InvocationType: "Event", // Asynchronous Payload: JSON.stringify({ orderId: "12345" }) }); await client.send(command);
Python
import boto3 import json client = boto3.client('lambda') # Asynchronous invocation response = client.invoke( FunctionName='my-durable-function', InvocationType='Event', # Asynchronous Payload=json.dumps({'order_id': '12345'}) )

Gestion de l'exécution APIs

Lambda permet de gérer et APIs de surveiller les exécutions de fonctions durables, notamment en listant les exécutions, en obtenant le statut d'exécution et en arrêtant les exécutions en cours.

TypeScript
// Get execution status const statusCommand = new InvokeCommand({ FunctionName: "my-durable-function", InvocationType: "RequestResponse", Payload: JSON.stringify({ action: "getStatus", executionId: "exec-123" }) }); const result = await client.send(statusCommand);
Python
# Get execution status response = client.invoke( FunctionName='my-durable-function', InvocationType='RequestResponse', Payload=json.dumps({ 'action': 'get_status', 'execution_id': 'exec-123' }) )