Memohon fungsi Lambda yang tahan lama - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memohon fungsi Lambda yang tahan lama

Fungsi Lambda yang tahan lama dapat dipanggil menggunakan metode yang sama dengan fungsi Lambda default, tetapi dengan pertimbangan penting untuk eksekusi yang berjalan lama. Bagian ini mencakup pola pemanggilan, manajemen eksekusi, dan praktik terbaik untuk fungsi yang tahan lama.

Batas pemanggilan sinkron

Pemanggilan sinkron dari fungsi Lambda yang tahan lama dibatasi hingga 15 menit, sama seperti fungsi Lambda default. Jika fungsi tahan lama Anda perlu berjalan lebih dari 15 menit, itu harus dipanggil secara asinkron.

Kapan menggunakan pemanggilan sinkron: Gunakan untuk fungsi tahan lama yang selesai dalam 15 menit dan saat Anda membutuhkan hasil segera, seperti alur kerja persetujuan cepat atau tugas pemrosesan data singkat.

Pemanggilan asinkron untuk alur kerja yang berjalan lama

Untuk fungsi tahan lama yang dapat berjalan lebih dari 15 menit, gunakan pemanggilan asinkron. Hal ini memungkinkan fungsi untuk terus berjalan sementara klien Anda menerima pengakuan langsung.

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

Manajemen eksekusi APIs

Lambda menyediakan APIs untuk mengelola dan memantau eksekusi fungsi yang tahan lama, termasuk mencantumkan eksekusi, mendapatkan status eksekusi, dan berhenti menjalankan eksekusi.

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