Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanggil fungsi Lambda secara lokal dengan AWS SAM
Memanggil fungsi Lambda secara lokal sebelum menguji atau menerapkan di cloud dapat memiliki berbagai manfaat. Ini memungkinkan Anda untuk menguji logika fungsi Anda lebih cepat. Pengujian secara lokal terlebih dahulu mengurangi kemungkinan mengidentifikasi masalah saat pengujian di cloud atau selama penerapan, yang dapat membantu Anda menghindari biaya yang tidak perlu. Selain itu, pengujian lokal membuat debugging lebih mudah dilakukan.
Anda dapat memanggil fungsi Lambda Anda secara lokal dengan menggunakan sam local invoke perintah dan memberikan ID logis fungsi dan file peristiwa. sam local invokejuga menerima stdin sebagai acara. Untuk informasi selengkapnya tentang peristiwa, lihat Peristiwa di Panduan Developer AWS Lambda . Untuk informasi tentang format pesan acara dari berbagai AWS layanan, lihat Menggunakan AWS Lambda dengan layanan lain di Panduan AWS Lambda Pengembang.
catatan
Tidak disarankan untuk menggunakan kemampuan pemanggilan lokal SAM CLI dalam kode yang tidak tepercaya. Untuk memiliki isolasi lengkap dari lingkungan lokal Anda, jalankan kode di layanan Lambda secara langsung.
catatan
sam local invokePerintah sesuai dengan perintah AWS Command Line Interface (AWS CLI) aws lambda invoke
Anda harus menjalankan sam local invoke perintah di direktori proyek yang berisi fungsi yang ingin Anda panggil.
Contoh:
# Invoking function with event file $ sam local invoke "Ratings" -e event.json # Invoking function with event via stdin $ echo '{"message": "Hey, are you there?" }' | sam local invoke --event - "Ratings" # For more options $ sam local invoke --help
File variabel lingkungan
Untuk mendeklarasikan variabel lingkungan secara lokal yang mengesampingkan nilai yang ditentukan dalam template Anda, lakukan hal berikut:
-
Buat JSON atau
.envfile yang berisi variabel lingkungan untuk ditimpa. -
Gunakan
--env-varsargumen untuk mengganti nilai yang ditentukan dalam template Anda.
--env-varsOpsi ini mendukung dua format file. Format file secara otomatis terdeteksi berdasarkan konten file.
Mendeklarasikan variabel lingkungan dengan JSON
Untuk mendeklarasikan variabel lingkungan yang berlaku secara global ke semua sumber daya, tentukan Parameters objek seperti berikut:
{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", "STAGE": "dev" } }
Untuk mendeklarasikan variabel lingkungan yang berbeda untuk setiap sumber daya, tentukan objek untuk setiap sumber daya seperti berikut:
{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }
Saat menentukan objek untuk setiap sumber daya, Anda dapat menggunakan pengidentifikasi berikut, yang terdaftar dalam urutan prioritas tertinggi hingga terendah:
-
logical_id -
function_id -
function_name -
Pengidentifikasi jalur lengkap
Anda dapat menggunakan kedua metode sebelumnya untuk mendeklarasikan variabel lingkungan bersama-sama dalam satu file. Saat melakukannya, variabel lingkungan yang Anda sediakan untuk sumber daya tertentu lebih diutamakan daripada variabel lingkungan global.
Simpan variabel lingkungan Anda dalam file JSON, sepertienv.json.
Mendeklarasikan variabel lingkungan dengan file.env
Anda juga dapat menggunakan .env file untuk mendeklarasikan variabel lingkungan. Variabel yang dideklarasikan dalam .env file berlaku secara global ke semua fungsi, setara dengan Parameters objek dalam format JSON.
TABLE_NAME=localtable BUCKET_NAME=amzn-s3-demo-bucket STAGE=dev
.envFormat ini mendukung komentar (baris dimulai dengan#) dan nilai yang dikutip.
catatan
.envFormat ini hanya mendukung variabel lingkungan global. Untuk mendeklarasikan variabel lingkungan khusus fungsi, gunakan format JSON.
Mengesampingkan nilai variabel lingkungan
Untuk mengganti variabel lingkungan dengan yang didefinisikan dalam file variabel lingkungan Anda, gunakan --env-vars argumen dengan start-api perintah invoke or. Contoh:
# Using a JSON file sam local invoke --env-vars env.json # Using a .env file sam local invoke --env-vars .env
Lapisan
Jika aplikasi Anda menyertakan lapisan, untuk informasi tentang cara men-debug masalah dengan lapisan pada host lokal Anda, lihatTingkatkan efisiensi menggunakan lapisan Lambda dengan AWS SAM.
Pelajari selengkapnya
Untuk contoh langsung menjalankan fungsi secara lokal, lihat Modul 2 - Jalankan secara lokal di The Complete Workshop