Richiamo di funzioni Lambda durevoli - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Richiamo di funzioni Lambda durevoli

Le funzioni Lambda durevoli possono essere richiamate utilizzando gli stessi metodi delle funzioni Lambda predefinite, ma con importanti considerazioni per le esecuzioni di lunga durata. Questa sezione descrive i modelli di invocazione, la gestione dell'esecuzione e le migliori pratiche per funzioni durevoli.

Limiti di invocazione sincrona

Le chiamate sincrone di funzioni Lambda durevoli sono limitate a 15 minuti, come le funzioni Lambda predefinite. Se la funzione duratura deve essere eseguita per più di 15 minuti, deve essere richiamata in modo asincrono.

Quando utilizzare la chiamata sincrona: utilizzala per funzioni durevoli che vengono completate entro 15 minuti e quando sono necessari risultati immediati, come flussi di lavoro di approvazione rapidi o brevi attività di elaborazione dei dati.

Richiamata asincrona per flussi di lavoro di lunga durata

Per funzioni durevoli che possono durare più di 15 minuti, utilizzate la chiamata asincrona. Ciò consente alla funzione di continuare a funzionare mentre il client riceve un riconoscimento immediato.

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'}) )

Gestione dell'esecuzione APIs

Lambda consente APIs di gestire e monitorare le esecuzioni di funzioni durevoli, tra cui elencare le esecuzioni, ottenere lo stato dell'esecuzione e interrompere le esecuzioni in esecuzione.

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' }) )