Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan lapisan untuk fungsi Python Lambda
Gunakan lapisan Lambda untuk mengemas kode dan dependensi yang ingin Anda gunakan kembali di beberapa fungsi. Lapisan biasanya berisi dependensi pustaka, runtime khusus, atau file konfigurasi. Membuat layer melibatkan tiga langkah umum:
-
Kemas konten layer Anda. Ini berarti membuat arsip file.zip yang berisi dependensi yang ingin Anda gunakan dalam fungsi Anda.
-
Buat layer di Lambda.
-
Tambahkan layer ke fungsi Anda.
Kemas konten layer Anda
Untuk membuat layer, bundel paket Anda ke dalam arsip file.zip yang memenuhi persyaratan berikut:
-
Bangun layer menggunakan versi Python yang sama yang Anda rencanakan untuk digunakan untuk fungsi Lambda. Misalnya, jika Anda membangun layer menggunakan Python 3.14, gunakan runtime Python 3.14 untuk fungsi Anda.
-
File.zip Anda harus menyertakan
pythondirektori di tingkat root. -
Paket di layer Anda harus kompatibel dengan Linux. Fungsi Lambda berjalan di Amazon Linux.
Anda dapat membuat lapisan yang berisi pustaka Python pihak ketiga yang diinstal dengan pip (seperti requests ataupandas) atau modul dan paket Python Anda sendiri.
Untuk membuat layer menggunakan paket pip
-
Pilih salah satu metode berikut untuk menginstal
pippaket ke direktori tingkat atas yang diperlukan (python/): -
Isi
pythondirektori zip.Struktur direktori file.zip Anda akan terlihat seperti ini:
python/# Required top-level directory └── requests/ └── boto3/ └── numpy/ └── (dependencies of the other packages)catatan
Jika Anda menggunakan lingkungan virtual Python (venv) untuk menginstal paket, struktur direktori Anda berbeda (misalnya,
python/lib/python3.). Selama file.zip Anda menyertakanx/site-packagespythondirektori di tingkat root, Lambda dapat menemukan dan mengimpor paket Anda.
Untuk membuat layer menggunakan kode Anda sendiri
-
Buat direktori tingkat atas yang diperlukan untuk layer Anda:
mkdir python -
Buat modul Python Anda di
pythondirektori. Modul contoh berikut memvalidasi pesanan dengan mengonfirmasi bahwa mereka berisi informasi yang diperlukan.contoh modul kustom: validator.py
import json def validate_order(order_data): """Validates an order and returns formatted data.""" required_fields = ['product_id', 'quantity'] # Check required fields missing_fields = [field for field in required_fields if field not in order_data] if missing_fields: raise ValueError(f"Missing required fields: {', '.join(missing_fields)}") # Validate quantity quantity = order_data['quantity'] if not isinstance(quantity, int) or quantity < 1: raise ValueError("Quantity must be a positive integer") # Format and return the validated data return { 'product_id': str(order_data['product_id']), 'quantity': quantity, 'shipping_priority': order_data.get('priority', 'standard') } def format_response(status_code, body): """Formats the API response.""" return { 'statusCode': status_code, 'body': json.dumps(body) } -
Isi
pythondirektori zip.Struktur direktori file.zip Anda akan terlihat seperti ini:
python/# Required top-level directory └── validator.py -
Dalam fungsi Anda, impor dan gunakan modul seperti yang Anda lakukan dengan paket Python apa pun. Contoh:
from validator import validate_order, format_responseimport json def lambda_handler(event, context): try: # Parse the order data from the event body order_data = json.loads(event.get('body', '{}')) # Validate and format the order validated_order = validate_order(order_data) return format_response(200, { 'message': 'Order validated successfully', 'order': validated_order }) except ValueError as e: return format_response(400, { 'error': str(e) }) except Exception as e: return format_response(500, { 'error': 'Internal server error' })Anda dapat menggunakan acara pengujian berikut untuk memanggil fungsi:
{ "body": "{\"product_id\": \"ABC123\", \"quantity\": 2, \"priority\": \"express\"}" }Respon yang diharapkan:
{ "statusCode": 200, "body": "{\"message\": \"Order validated successfully\", \"order\": {\"product_id\": \"ABC123\", \"quantity\": 2, \"shipping_priority\": \"express\"}}" }
Buat layer di Lambda
Anda dapat mempublikasikan layer Anda menggunakan konsol AWS CLI atau Lambda.
Tambahkan layer ke fungsi Anda
Contoh aplikasi
Untuk contoh lebih lanjut tentang cara menggunakan lapisan Lambda, lihat aplikasi sampel