Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan API Gateway secara lokal dengan AWS SAM
Amazon API Gateway yang dijalankan secara lokal dapat memiliki berbagai manfaat. Misalnya, menjalankan API Gateway secara lokal memungkinkan Anda menguji API titik akhir secara lokal sebelum penerapan ke cloud. AWS Jika Anda menguji secara lokal terlebih dahulu, Anda sering dapat mengurangi pengujian dan pengembangan di cloud, yang dapat membantu mengurangi biaya. Selain itu, menjalankan secara lokal membuat debugging lebih mudah.
Untuk memulai instance lokal API Gateway yang dapat Anda gunakan untuk menguji fungsionalitas HTTP permintaan/respons, gunakan sam local start-api
AWS SAMÂ CLI perintah. Fungsionalitas ini memiliki fitur hot reload sehingga Anda dapat dengan cepat mengembangkan dan mengulangi fungsi Anda.
catatan
Hot reload adalah ketika hanya file yang diubah yang di-refresh, dan status aplikasi tetap sama. Sebaliknya, live reload adalah ketika seluruh aplikasi di-refresh, dan status aplikasi hilang.
Untuk petunjuk tentang penggunaan sam local start-api
perintah, lihatPengantar pengujian dengan sam local start-api.
Secara default, AWS SAM menggunakan integrasi AWS Lambda proxy dan mendukung keduanya HttpApi
dan jenis Api
sumber daya. Untuk informasi selengkapnya tentang integrasi proxy untuk jenis HttpApi
sumber daya, lihat Bekerja dengan integrasi AWS Lambda proxy HTTP APIs di Panduan Pengembang API Gateway. Untuk informasi selengkapnya tentang integrasi proxy dengan tipe Api
sumber daya, lihat Memahami integrasi proxy API Gateway Lambda di Panduan APIPengembang Gateway.
Contoh:
$
sam local start-api
AWS SAM secara otomatis menemukan fungsi apa pun dalam AWS SAM template Anda yang memiliki HttpApi
atau sumber Api
peristiwa yang ditentukan. Kemudian, ia memasang fungsi di HTTP jalur yang ditentukan.
Pada contoh Api
berikut, fungsi Ratings
memasang ratings.py:handler()
di /ratings
untuk permintaan GET
:
Ratings: Type: AWS::Serverless::Function Properties: Handler: ratings.handler Runtime: python3.9 Events: Api: Type: Api Properties: Path: /ratings Method: get
Berikut adalah contoh respons Api
:
// Example of a Proxy Integration response exports.handler = (event, context, callback) => { callback(null, { statusCode: 200, headers: { "x-custom-header" : "my custom header value" }, body: "hello world" }); }
Jika Anda memodifikasi kode fungsi Anda, jalankan sam build
perintah sam local start-api
untuk mendeteksi perubahan Anda.
File variabel lingkungan
Untuk mendeklarasikan variabel lingkungan secara lokal yang mengesampingkan nilai yang ditentukan dalam template Anda, lakukan hal berikut:
-
Buat JSON file yang berisi variabel lingkungan untuk diganti.
-
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": "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 JSON file, sepertienv.json
.
Mengesampingkan nilai variabel lingkungan
Untuk mengganti variabel lingkungan dengan yang ditentukan dalam JSON file Anda, gunakan --env-vars
argumen dengan start-api perintah invoke or. Sebagai contoh:
$
sam local start-api --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.