Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat aplikasi pemrosesan file tanpa server
Salah satu kasus penggunaan yang paling umum untuk Lambda adalah melakukan tugas pemrosesan file. Misalnya, Anda dapat menggunakan fungsi Lambda untuk secara otomatis membuat file PDF dari file atau gambar HTML, atau untuk membuat thumbnail saat pengguna mengunggah gambar.
Dalam contoh ini, Anda membuat aplikasi yang secara otomatis mengenkripsi file PDF saat diunggah ke bucket Amazon Simple Storage Service (Amazon S3). Untuk mengimplementasikan aplikasi ini, Anda membuat sumber daya berikut:
-
Bucket S3 bagi pengguna untuk mengunggah file PDF
-
Fungsi Lambda di Python yang membaca file yang diunggah dan membuat versi terenkripsi dan dilindungi kata sandi darinya
-
Bucket S3 kedua untuk Lambda untuk menyimpan file terenkripsi
Anda juga membuat kebijakan AWS Identity and Access Management (IAM) untuk memberikan izin fungsi Lambda Anda untuk melakukan operasi baca dan tulis pada bucket S3 Anda.
Tip
Jika Anda baru mengenal Lambda, kami sarankan Anda memulai dengan tutorial Buat fungsi Lambda pertama Anda sebelum membuat aplikasi contoh ini.
Anda dapat menerapkan aplikasi secara manual dengan membuat dan mengonfigurasi sumber daya dengan Konsol Manajemen AWS atau AWS Command Line Interface (AWS CLI). Anda juga dapat menerapkan aplikasi dengan menggunakan AWS Serverless Application Model (AWS SAM). AWS SAM adalah alat infrastruktur sebagai kode (IAc). Dengan iAC, Anda tidak membuat sumber daya secara manual, tetapi mendefinisikannya dalam kode dan kemudian menerapkannya secara otomatis.
Jika Anda ingin mempelajari lebih lanjut tentang menggunakan Lambda dengan IaC sebelum menerapkan aplikasi contoh ini, lihat. Menggunakan Lambda dengan infrastruktur sebagai kode (IAc)
Buat file kode sumber fungsi Lambda
Buat file berikut di direktori proyek Anda:
-
lambda_function.py- kode fungsi Python untuk fungsi Lambda yang melakukan enkripsi file -
requirements.txt- file manifes yang mendefinisikan dependensi yang dibutuhkan kode fungsi Python Anda
Perluas bagian berikut untuk melihat kode dan mempelajari lebih lanjut tentang peran setiap file. Untuk membuat file di mesin lokal Anda, salin dan tempel kode di bawah ini, atau unduh file dari repo aws-lam GitHub bda-developer-guide.
Salin dan tempel kode berikut ke dalam file bernamalambda_function.py.
from pypdf import PdfReader, PdfWriter import uuid import os from urllib.parse import unquote_plus import boto3 # Create the S3 client to download and upload objects from S3 s3_client = boto3.client('s3') def lambda_handler(event, context): # Iterate over the S3 event object and get the key for all uploaded files for record in event['Records']: bucket = record['s3']['bucket']['name'] key = unquote_plus(record['s3']['object']['key']) # Decode the S3 object key to remove any URL-encoded characters download_path = f'/tmp/{uuid.uuid4()}.pdf' # Create a path in the Lambda tmp directory to save the file to upload_path = f'/tmp/converted-{uuid.uuid4()}.pdf' # Create another path to save the encrypted file to # If the file is a PDF, encrypt it and upload it to the destination S3 bucket if key.lower().endswith('.pdf'): s3_client.download_file(bucket, key, download_path) encrypt_pdf(download_path, upload_path) encrypted_key = add_encrypted_suffix(key) s3_client.upload_file(upload_path, f'{bucket}-encrypted', encrypted_key) # Define the function to encrypt the PDF file with a password def encrypt_pdf(file_path, encrypted_file_path): reader = PdfReader(file_path) writer = PdfWriter() for page in reader.pages: writer.add_page(page) # Add a password to the new PDF writer.encrypt("my-secret-password") # Save the new PDF to a file with open(encrypted_file_path, "wb") as file: writer.write(file) # Define a function to add a suffix to the original filename after encryption def add_encrypted_suffix(original_key): filename, extension = original_key.rsplit('.', 1) return f'{filename}_encrypted.{extension}'
catatan
Dalam kode contoh ini, kata sandi untuk file terenkripsi (my-secret-password) dikodekan ke dalam kode fungsi. Dalam aplikasi produksi, jangan sertakan informasi sensitif seperti kata sandi dalam kode fungsi Anda. Sebagai gantinya, buat AWS Secrets Manager rahasia dan kemudian gunakan ekstensi AWS Parameter dan Rahasia Lambda untuk mengambil kredenSIAL Anda dalam fungsi Lambda Anda.
Kode fungsi python berisi tiga fungsi - fungsi handler yang dijalankan Lambda saat fungsi Anda dipanggil, dan dua fungsi terpisah bernama add_encrypted_suffix dan encrypt_pdf yang dipanggil handler untuk melakukan enkripsi PDF.
Saat fungsi Anda dipanggil oleh Amazon S3, Lambda meneruskan argumen peristiwa berformat JSON ke fungsi yang berisi detail tentang peristiwa yang menyebabkan pemanggilan. Dalam hal ini, informasi termasuk nama bucket S3 dan kunci objek untuk file yang diunggah. Untuk mempelajari lebih lanjut tentang format objek acara untuk Amazon S3, lihatMemproses pemberitahuan acara Amazon S3 dengan Lambda.
Fungsi Anda kemudian menggunakan AWS SDK untuk Python (Boto3) untuk mengunduh file PDF yang ditentukan dalam objek acara ke direktori penyimpanan sementara lokalnya, sebelum mengenkripsinya menggunakan pustaka pypdf
Terakhir, fungsi menggunakan Boto3 SDK untuk menyimpan file terenkripsi di bucket tujuan S3 Anda.
Salin dan tempel kode berikut ke dalam file bernamarequirements.txt.
boto3 pypdf
Untuk contoh ini, kode fungsi Anda hanya memiliki dua dependensi yang bukan bagian dari pustaka Python standar - SDK untuk Python (Boto3) dan pypdf paket yang digunakan fungsi untuk melakukan enkripsi PDF.
catatan
Versi SDK untuk Python (Boto3) disertakan sebagai bagian dari runtime Lambda, sehingga kode Anda akan berjalan tanpa menambahkan Boto3 ke paket penerapan fungsi Anda. Namun, untuk mempertahankan kontrol penuh atas dependensi fungsi Anda dan menghindari kemungkinan masalah dengan ketidaksejajaran versi, praktik terbaik untuk Python adalah memasukkan semua dependensi fungsi dalam paket penerapan fungsi Anda. Lihat Dependensi runtime di Python untuk mempelajari selengkapnya.
Menyebarkan aplikasi
Anda dapat membuat dan menyebarkan sumber daya untuk aplikasi contoh ini baik secara manual atau dengan menggunakan AWS SAM. Dalam lingkungan produksi, kami menyarankan Anda menggunakan alat iAc seperti AWS SAM untuk menyebarkan seluruh aplikasi tanpa server dengan cepat dan berulang tanpa menggunakan proses manual.
Untuk menerapkan aplikasi secara manual:
-
Buat bucket Amazon S3 sumber dan tujuan
-
Buat fungsi Lambda yang mengenkripsi file PDF dan menyimpan versi terenkripsi ke bucket S3
-
Konfigurasikan pemicu Lambda yang memanggil fungsi Anda saat objek diunggah ke bucket sumber Anda
Sebelum Anda mulai, pastikan bahwa Python
Buat dua bucket S3
Pertama buat dua bucket S3. Bucket pertama adalah bucket sumber tempat Anda mengunggah file PDF Anda. Bucket kedua digunakan oleh Lambda untuk menyimpan file terenkripsi saat Anda memanggil fungsi Anda.
Membuat peran eksekusi
Peran eksekusi adalah peran IAM yang memberikan izin fungsi Lambda untuk mengakses Layanan AWS dan sumber daya. Untuk memberikan fungsi akses baca dan tulis ke Amazon S3, Anda melampirkan kebijakan ter AWS kelola AmazonS3FullAccess.
Buat paket penerapan fungsi
Untuk membuat fungsi Anda, Anda membuat paket penerapan yang berisi kode fungsi Anda dan dependensinya. Untuk aplikasi ini, kode fungsi Anda menggunakan pustaka terpisah untuk enkripsi PDF.
Untuk membuat paket deployment
-
Arahkan ke direktori proyek yang berisi
requirements.txtfilelambda_function.pydan yang Anda buat atau unduh dari GitHub sebelumnya dan buat direktori baru bernamapackage. -
Instal dependensi yang ditentukan dalam
requirements.txtfile dipackagedirektori Anda dengan menjalankan perintah berikut.pip install -r requirements.txt --target ./package/ -
Buat file.zip yang berisi kode aplikasi Anda dan dependensinya. Di Linux atau macOS, jalankan perintah berikut dari antarmuka baris perintah Anda.
cd package zip -r ../lambda_function.zip . cd .. zip lambda_function.zip lambda_function.pyDi Windows, gunakan alat zip pilihan Anda untuk membuat file
lambda_function.zip. Pastikanlambda_function.pyfile Anda dan folder yang berisi dependensi Anda semuanya berada di root file.zip.
Anda juga dapat membuat paket deployment menggunakan lingkungan virtual Python. Lihat Bekerja dengan arsip file.zip untuk fungsi Python Lambda
Buat fungsi Lambda
Anda sekarang menggunakan paket penerapan yang Anda buat pada langkah sebelumnya untuk menerapkan fungsi Lambda Anda.
Konfigurasikan pemicu Amazon S3 untuk memanggil fungsi
Agar fungsi Lambda Anda berjalan saat Anda mengunggah file ke bucket sumber Anda, Anda perlu mengonfigurasi pemicu untuk fungsi Anda. Anda dapat mengonfigurasi pemicu Amazon S3 menggunakan konsol atau AWS CLI.
penting
Prosedur ini mengonfigurasi bucket S3 untuk memanggil fungsi Anda setiap kali objek dibuat di bucket. Pastikan untuk mengkonfigurasi ini hanya pada bucket sumber. Jika fungsi Lambda Anda membuat objek dalam bucket yang sama yang memanggilnya, fungsi Anda dapat dipang gil terus menerus dalam sebuah loop.
Sebelum Anda mulai, pastikan bahwa Docker
-
Di direktori proyek Anda, salin dan tempel kode berikut ke dalam file bernama
template.yaml. Ganti nama bucket placeholder:-
Untuk bucket sumber, ganti
amzn-s3-demo-bucketdengan nama apa pun yang sesuai dengan aturan penamaan bucket S3. -
Untuk bucket tujuan, ganti
amzn-s3-demo-bucket-encrypteddengan<source-bucket-name>-encrypted, di<source-bucket>mana nama yang Anda pilih untuk bucket sumber Anda.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: EncryptPDFFunction: Type: AWS::Serverless::Function Properties: FunctionName: EncryptPDF Architectures: [x86_64] CodeUri: ./ Handler: lambda_function.lambda_handler Runtime: python3.12 Timeout: 15 MemorySize: 256 LoggingConfig: LogFormat: JSON Policies: - AmazonS3FullAccess Events: S3Event: Type: S3 Properties: Bucket: !Ref PDFSourceBucket Events: s3:ObjectCreated:* PDFSourceBucket: Type: AWS::S3::Bucket Properties: BucketName:amzn-s3-demo-bucketEncryptedPDFBucket: Type: AWS::S3::Bucket Properties: BucketName:amzn-s3-demo-bucket-encryptedTem AWS SAM plate menentukan sumber daya yang Anda buat untuk aplikasi Anda. Dalam contoh ini, template mendefinisikan fungsi Lambda menggunakan
AWS::Serverless::Functiontipe dan dua bucket S3 menggunakanAWS::S3::Buckettipe. Nama bucket yang ditentukan dalam template adalah placeholder. Sebelum menerapkan aplikasi menggunakan AWS SAM, Anda perlu mengedit template untuk mengganti nama bucket dengan nama unik global yang memenuhi aturan penamaan bucket S3. Langkah ini dijelaskan lebih lanjut diMenyebarkan sumber daya menggunakan AWS SAM.Definisi sumber daya fungsi Lambda mengonfigurasi pemicu untuk fungsi menggunakan properti
S3Eventperistiwa. Pemicu ini menyebabkan fungsi Anda dipanggil setiap kali objek dibuat di bucket sumber Anda.Definisi fungsi juga menentukan kebijakan AWS Identity and Access Management (IAM) untuk dilampirkan ke peran Mendefinisikan izin fungsi Lambda dengan peran pelaksanaan eksekusi fungsi. Kebijakan AWS terkelola
AmazonS3FullAccessmemberi fungsi Anda izin yang diperlukan untuk membaca dan menulis objek ke Amazon S3. -
-
Jalankan perintah berikut dari direktori tempat Anda menyimpan
requirements.txtfiletemplate.yamllambda_function.py,, dan.sam build --use-containerPerintah ini mengumpulkan artefak build untuk aplikasi Anda dan menempatkannya dalam format dan lokasi yang tepat untuk menyebarkannya. Menentukan
--use-containeropsi membangun fungsi Anda di dalam wadah Lambda-like Docker. Kami menggunakannya di sini sehingga Anda tidak perlu menginstal Python 3.12 di mesin lokal Anda agar build berfungsi.Selama proses pembuatan, AWS SAM cari kode fungsi Lambda di lokasi yang Anda tentukan dengan
CodeUriproperti di template. Dalam hal ini, kami menentukan direktori saat ini sebagai lokasi (./).Jika
requirements.txtfile ada, AWS SAM menggunakannya untuk mengumpulkan dependensi yang ditentukan. Secara default, buat AWS SAM paket penerapan.zip dengan kode fungsi dan dependensi Anda. Anda juga dapat memilih untuk menerapkan fungsi Anda sebagai gambar kontainer menggunakan PackageType properti. -
Untuk menerapkan aplikasi Anda dan membuat sumber daya Lambda dan Amazon S3 yang ditentukan dalam AWS SAM template Anda, jalankan perintah berikut.
sam deploy --guidedMenggunakan
--guidedbendera berarti itu AWS SAM akan menunjukkan kepada Anda petunjuk untuk memandu Anda melalui proses penerapan. Untuk penerapan ini, terima opsi default dengan menekan Enter.
Selama proses penerapan, AWS SAM buat sumber daya berikut di Akun AWS:
-
Tum CloudFormation pukan bernama
sam-app -
Fungsi Lambda dengan nama
EncryptPDF -
Dua bucket S3 dengan nama yang Anda pilih saat Anda mengedit file
template.yamlAWS SAM template -
Peran eksekusi IAM untuk fungsi Anda dengan format nama
sam-app-EncryptPDFFunctionRole-2qGaapHFWOQ8
Setelah AWS SAM selesai membuat sumber daya Anda, Anda akan melihat pesan berikut:
Successfully created/updated stack - sam-app in us-east-2Tes aplikasi
Untuk menguji aplikasi Anda, unggah file PDF ke bucket sumber Anda, dan konfirmasikan bahwa Lambda membuat versi file terenkripsi di bucket tujuan Anda. Dalam contoh ini, Anda dapat menguji ini secara manual menggunakan konsol atau AWS CLI, atau dengan menggunakan skrip pengujian yang disediakan.
Untuk aplikasi produksi, Anda dapat menggunakan metode dan teknik pengujian tradisional, seperti pengujian unit, untuk mengonfirmasi fungsi kode fungsi Lambda Anda dengan benar. Praktik terbaik juga adalah melakukan tes seperti yang ada di skrip pengujian yang disediakan yang melakukan pengujian integrasi dengan sumber daya berbasis cloud yang nyata. Pengujian integrasi di cloud mengonfirmasi bahwa infrastruktur Anda telah diterapkan dengan benar dan bahwa peristiwa mengalir di antara layanan yang berbeda seperti yang diharapkan. Untuk mempelajari selengkapnya, lihat Cara menguji fungsi dan aplikasi tanpa server.
Anda dapat menguji fungsi secara manual dengan menambahkan file PDF ke bucket sumber Amazon S3 Anda. Ketika Anda menambahkan file Anda ke bucket sumber, fungsi Lambda Anda harus dipanggil secara otomatis dan harus menyimpan versi file terenkripsi di bucket target Anda.
Buat file berikut di direktori proyek Anda:
-
test_pdf_encrypt.py- skrip uji yang dapat Anda gunakan untuk menguji aplikasi Anda secara otomatis -
pytest.ini- file konfigurasi untuk skrip pengujian
Perluas bagian berikut untuk melihat kode dan mempelajari lebih lanjut tentang peran setiap file.
Salin dan tempel kode berikut ke dalam file bernamatest_pdf_encrypt.py. Pastikan untuk mengganti nama bucket placeholder:
-
Dalam
test_source_bucket_availablefungsi, gantiamzn-s3-demo-bucketdengan nama bucket sumber Anda. -
Dalam
test_encrypted_file_in_bucketfungsi, gantiamzn-s3-demo-bucket-encrypteddengansource-bucket-encrypted, disource-bucket>mana nama bucket sumber Anda. -
Dalam
cleanupfungsi, gantiamzn-s3-demo-bucketdengan nama bucket sumber Anda, dan gantiamzn-s3-demo-bucket-encrypteddengan nama bucket tujuan Anda.
import boto3 import json import pytest import time import os @pytest.fixture def lambda_client(): return boto3.client('lambda') @pytest.fixture def s3_client(): return boto3.client('s3') @pytest.fixture def logs_client(): return boto3.client('logs') @pytest.fixture(scope='session') def cleanup(): # Create a new S3 client for cleanup s3_client = boto3.client('s3') yield # Cleanup code will be executed after all tests have finished # Delete test.pdf from the source bucket source_bucket = 'amzn-s3-demo-bucket' source_file_key = 'test.pdf' s3_client.delete_object(Bucket=source_bucket, Key=source_file_key) print(f"\nDeleted {source_file_key} from {source_bucket}") # Delete test_encrypted.pdf from the destination bucket destination_bucket = 'amzn-s3-demo-bucket-encrypted' destination_file_key = 'test_encrypted.pdf' s3_client.delete_object(Bucket=destination_bucket, Key=destination_file_key) print(f"Deleted {destination_file_key} from {destination_bucket}") @pytest.mark.order(1) def test_source_bucket_available(s3_client): s3_bucket_name = 'amzn-s3-demo-bucket' file_name = 'test.pdf' file_path = os.path.join(os.path.dirname(__file__), file_name) file_uploaded = False try: s3_client.upload_file(file_path, s3_bucket_name, file_name) file_uploaded = True except: print("Error: couldn't upload file") assert file_uploaded, "Could not upload file to S3 bucket" @pytest.mark.order(2) def test_lambda_invoked(logs_client): # Wait for a few seconds to make sure the logs are available time.sleep(5) # Get the latest log stream for the specified log group log_streams = logs_client.describe_log_streams( logGroupName='/aws/lambda/EncryptPDF', orderBy='LastEventTime', descending=True, limit=1 ) latest_log_stream_name = log_streams['logStreams'][0]['logStreamName'] # Retrieve the log events from the latest log stream log_events = logs_client.get_log_events( logGroupName='/aws/lambda/EncryptPDF', logStreamName=latest_log_stream_name ) success_found = False for event in log_events['events']: message = json.loads(event['message']) status = message.get('record', {}).get('status') if status == 'success': success_found = True break assert success_found, "Lambda function execution did not report 'success' status in logs." @pytest.mark.order(3) def test_encrypted_file_in_bucket(s3_client): # Specify the destination S3 bucket and the expected converted file key destination_bucket = 'amzn-s3-demo-bucket-encrypted' converted_file_key = 'test_encrypted.pdf' try: # Attempt to retrieve the metadata of the converted file from the destination S3 bucket s3_client.head_object(Bucket=destination_bucket, Key=converted_file_key) except s3_client.exceptions.ClientError as e: # If the file is not found, the test will fail pytest.fail(f"Converted file '{converted_file_key}' not found in the destination bucket: {str(e)}") def test_cleanup(cleanup): # This test uses the cleanup fixture and will be executed last pass
Skrip pengujian otomatis mengeksekusi tiga fungsi pengujian untuk mengonfirmasi pengoperasian aplikasi yang benar:
-
Pengujian
test_source_bucket_availablemengonfirmasi bahwa bucket sumber Anda telah berhasil dibuat dengan mengunggah file PDF uji ke bucket. -
Pengujian meng
test_lambda_invokedinterogasi aliran CloudWatch log Log terbaru untuk fungsi Anda untuk mengonfirmasi bahwa ketika Anda mengunggah file pengujian, fungsi Lambda Anda berjalan dan melaporkan keberhasilan. -
Pengujian
test_encrypted_file_in_bucketmengonfirmasi bahwa bucket tujuan Anda berisitest_encrypted.pdffile terenkripsi.
Setelah semua pengujian ini berjalan, skrip menjalankan langkah pembersihan tambahan untuk menghapus test_encrypted.pdf file test.pdf dan dari bucket sumber dan tujuan Anda.
Seperti AWS SAM template, nama bucket yang ditentukan dalam file ini adalah placeholder. Sebelum menjalankan pengujian, Anda perlu mengedit file ini dengan nama bucket asli aplikasi Anda. Langkah ini dijelaskan lebih lanjut di Menguji aplikasi dengan skrip otomatis
Salin dan tempel kode berikut ke dalam file bernamapytest.ini.
[pytest] markers = order: specify test execution order
Ini diperlukan untuk menentukan urutan di mana pengujian dalam test_pdf_encrypt.py skrip berjalan.
Untuk menjalankan pengujian lakukan hal berikut:
-
Pastikan
pytestmodul dipasang di lingkungan lokal Anda. Anda dapat menginstalpytestdengan menjalankan perintah berikut:pip install pytest -
Simpan file PDF bernama
test.pdfdi direktori yang berisipytest.inifiletest_pdf_encrypt.pydan. -
Buka terminal atau program shell dan jalankan perintah berikut dari direktori yang berisi file uji.
pytest -s -vKetika tes selesai, Anda akan melihat output seperti berikut:
============================================================== test session starts ========================================================= platform linux -- Python 3.12.2, pytest-7.2.2, pluggy-1.0.0 -- /usr/bin/python3 cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/home/pdf_encrypt_app/.hypothesis/examples') Test order randomisation NOT enabled. Enable with --random-order or --random-order-bucket=<bucket_type> rootdir: /home/pdf_encrypt_app, configfile: pytest.ini plugins: anyio-3.7.1, hypothesis-6.70.0, localserver-0.7.1, random-order-1.1.0 collected 4 items test_pdf_encrypt.py::test_source_bucket_available PASSED test_pdf_encrypt.py::test_lambda_invoked PASSED test_pdf_encrypt.py::test_encrypted_file_in_bucket PASSED test_pdf_encrypt.py::test_cleanup PASSED Deleted test.pdf from amzn-s3-demo-bucket Deleted test_encrypted.pdf from amzn-s3-demo-bucket-encrypted =============================================================== 4 passed in 7.32s ==========================================================
Langkah selanjutnya
Sekarang Anda telah membuat aplikasi contoh ini, Anda dapat menggunakan kode yang disediakan sebagai dasar untuk membuat jenis aplikasi pemrosesan file lainnya. Ubah kode dalam lambda_function.py file untuk mengimplementasikan logika pemrosesan file untuk kasus penggunaan Anda.
Banyak kasus penggunaan pemrosesan file yang khas melibatkan pemrosesan gambar. Saat menggunakan Python, pustaka pengolah gambar paling populer seperti bantal
Saat menerapkan sumber daya dengan AWS SAM, Anda perlu mengambil beberapa langkah tambahan untuk menyertakan distribusi sumber yang tepat dalam paket penerapan Anda. Karena AWS SAM tidak akan menginstal dependensi untuk platform yang berbeda dari mesin build Anda, menentukan distribusi sumber (.whlfile) yang benar dalam requirements.txt file Anda tidak akan berfungsi jika mesin build Anda menggunakan sistem operasi atau arsitektur yang berbeda dari lingkungan eksekusi Lambda. Sebagai gantinya, Anda harus melakukan salah satu dari hal berikut:
-
Gunakan
--use-containeropsi saat menjalankansam build. Saat Anda menentukan opsi ini, AWS SAM unduh image basis kontainer yang kompatibel dengan lingkungan eksekusi Lambda dan membangun paket penerapan fungsi Anda dalam wadah Docker menggunakan gambar tersebut. Untuk mempelajari selengkapnya, lihat Membangun fungsi Lambda di dalam wadah yang disediakan. -
Buat paket penerapan.zip fungsi Anda sendiri menggunakan biner distribusi sumber yang benar dan simpan file.zip di direktori yang Anda tentukan sebagai
CodeUridalam template. AWS SAM Untuk mempelajari lebih lanjut tentang membangun paket penerapan.zip untuk Python menggunakan distribusi biner, lihat Membuat paket penyebaran.zip dengan dependensi danMembuat paket penyebaran.zip dengan pustaka asli.