Memanggil fungsi Lambda secara lokal dengan AWS SAM - AWS Serverless Application Model

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

sam local invokePerintah sesuai dengan perintah AWS Command Line Interface (AWS CLI) aws lambda invoke. Anda dapat menggunakan salah satu perintah untuk menjalankan fungsi Lambda.

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:

  1. Buat file JSON yang berisi variabel lingkungan untuk ditimpa.

  2. Gunakan --env-vars argumen untuk mengganti nilai yang ditentukan dalam template Anda.

Mendeklarasikan variabel lingkungan

Untuk mendeklarasikan variabel lingkungan yang berlaku secara global ke semua sumber daya, tentukan Parameters objek seperti berikut:

{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", "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": "testBucket", }, "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:

  1. logical_id

  2. function_id

  3. function_name

  4. 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.

Mengesampingkan nilai variabel lingkungan

Untuk mengganti variabel lingkungan dengan yang ditentukan dalam file JSON Anda, gunakan --env-vars argumen dengan perintah invoke orstart-api. Sebagai contoh:

sam local invoke --env-vars env.json

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. AWS SAM