Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konsep inti
Memahami konsep inti berikut membantu Anda menyebarkan dan mengelola aplikasi web secara efektif. Halaman ini mencakup model sumber daya Fungsi Web, status siklus hidup setiap sumber daya, dan cara Lambda menangani permintaan HTTP yang masuk.
Model sumber daya mendefinisikan struktur Fungsi Web. Fungsi Web adalah sumber daya tingkat atas. Ini berisi revisi (snapshot yang tidak dapat diubah dari kode dan konfigurasi Anda) dan titik akhir (titik masuk jaringan yang merutekan lalu lintas HTTP ke revisi Anda).
Status revisi dan status titik akhir melacak kemajuan sumber daya tersebut saat Lambda membuat, menyebarkan, dan menghapusnya. Memantau status ini memberi tahu Anda kapan Lambda selesai membuat, menerapkan, atau menghapus sumber daya dan membantu Anda mendiagnosis kegagalan.
Lingkungan eksekusi adalah contoh komputasi terisolasi di mana server web dan aplikasi Anda berjalan. Setiap lingkungan eksekusi menangani beberapa permintaan HTTP bersamaan. Lambda membuat dan menghapus lingkungan secara otomatis berdasarkan konfigurasi dan lalu lintas Fungsi Web Anda.
Bagian berikut memberikan informasi rinci tentang setiap konsep inti.
Model sumber daya
Fungsi Web Lambda terdiri dari tiga jenis sumber daya dalam hierarki orangtua-anak. Fungsi Web adalah sumber daya tingkat atas. Revisi dan endpoint adalah sumber daya turunan dari Fungsi Web. Menyebarkan kode atau mengubah konfigurasi revisi membuat revisi baru. Diagram berikut menunjukkan Fungsi Web yang titik akhirnya mengarahkan lalu lintas ke revisinya.
- Fungsi Web
-
Sumber daya tingkat atas yang mewakili aplikasi web Anda. Fungsi Web memiliki nama, ARN, dan status siklus hidupnya sendiri (Tertunda, Aktif, Gagal, atau Menghapus). Ini dapat berisi revisi dan titik akhir; semua revisi dan titik akhir milik Fungsi Web induk tunggal.
- Revisi
-
Cuplikan yang tidak dapat diubah dari kode dan konfigurasi aplikasi Anda. Anda membuat revisi baru setiap kali mengubah kode atau konfigurasi revisi, seperti batas waktu permintaan, jumlah maksimum permintaan bersamaan per lingkungan eksekusi, atau variabel lingkungan. Karena revisi tidak dapat diubah, Anda selalu dapat memutar kembali ke versi aplikasi sebelumnya dengan merutekan lalu lintas ke revisi sebelumnya. Anda dapat mendistribusikan lalu lintas antara dua revisi sekaligus untuk penerapan kenari atau biru-hijau.
- Titik akhir
-
Titik masuk jaringan yang merutekan lalu lintas HTTP ke revisi Anda. Setiap titik akhir memiliki nama domain unik dengan TLS, jenis otentikasi yang mengontrol akses, dan pengaturan penskalaan yang menentukan kapasitas. Saat Anda membuat titik akhir, Anda memilih jenis titik akhir, yang menetapkan cakupan geografisnya. HomeRegionmelayani lalu lintas dari daerah asal saja. MultiRegionmelayani lalu lintas dari beberapa Wilayah di belakang satu domain global, yang merutekan setiap permintaan ke Wilayah berdasarkan latensi jaringan, dengan upaya terbaik. PerRegionmelayani lalu lintas dari beberapa Wilayah, masing-masing dengan domain Regionalnya sendiri, dan Anda mengontrol bagaimana klien mencapai setiap Wilayah. Fungsi Web dapat memiliki beberapa titik akhir, masing-masing dengan konfigurasi independen. Anda mengonfigurasi bobot revisi pada titik akhir untuk merutekan lalu lintas ke satu atau dua revisi aktif.
Status revisi
Revisi bergerak melalui status berikut selama siklus hidupnya. Anda dapat memeriksa status saat ini dengan menelepon GetWebFunctionRevision atau melihat detail revisi di konsol Lambda.
| Status | Deskripsi | Apa yang terjadi selanjutnya |
|---|---|---|
| Tertunda | Lambda sedang membuat revisi. Ini termasuk mengunduh kode Anda dari Amazon S3 dan memvalidasi konfigurasi. | Revisi bertransisi ke Aktif saat pembuatan berhasil, atau ke Gagal jika terjadi kesalahan. |
| Aktif | Revisi berhasil dibuat dan siap diletakkan di belakang titik akhir. | Revisi tetap Aktif sampai Anda menghapusnya, Lambda menghapusnya selama pembersihan revisi otomatis (Batas revisi dan pembersihan otomatislihat), atau Anda menghapus akses ke kode sumber. Jika Lambda kehilangan akses ke kode, misalnya karena versi objek Amazon S3 yang direferensikan telah dihapus, revisi akan beralih ke Gagal (lihat). Siklus hidup objek |
| Gagal | Lambda tidak dapat membuat revisi. Masalah yang terdeteksi Lambda saat Anda mengirimkan permintaan tidak menghasilkan revisi Gagal. Misalnya, jika AWS KMS kunci memiliki izin yang tidak mencukupi, permintaan gagal dengan pengecualian klien, dan Lambda tidak membuat revisi. | Periksa stateReason bidang dalam GetWebFunctionRevision respons untuk detailnya. Buat revisi baru untuk memperbaiki masalah. Revisi yang gagal tidak dapat melayani lalu lintas. |
Status titik akhir
Titik akhir memiliki dua bidang status: state melacak siklus hidup keseluruhan, dan updateStatus melacak pembaruan titik akhir setelah pembuatan awal. Anda dapat memeriksa keduanya dengan meneleponGetWebFunctionEndpoint.
| Status | Deskripsi | Apa yang terjadi selanjutnya |
|---|---|---|
| Tertunda | Lambda menciptakan titik akhir. Ini termasuk mengalokasikan nama domain, penyediaan TLS, dan mengonfigurasi perutean. Untuk MultiRegion dan PerRegion titik akhir, ini juga termasuk mereplikasi konfigurasi ke yang lain. Wilayah AWS |
Titik akhir bertransisi ke Aktif saat pembuatan berhasil di semua Wilayah target, atau ke Gagal jika terjadi kesalahan. |
| Aktif | Endpoint siap menerima lalu lintas HTTP pada nama domainnya. Klien dapat mengirim permintaan ke titik akhir. | Titik akhir tetap aktif. Lambda melacak pembaruan titik akhir berikutnya di updateStatus lapangan tanpa mengubah status keseluruhan titik akhir. |
| Gagal | Penciptaan gagal. Untuk MultiRegion dan PerRegion titik akhir, ini dapat menunjukkan kegagalan di satu atau lebih Wilayah target. |
Periksa stateReason bidang untuk detailnya. Untuk MultiRegion dan PerRegion titik akhir, periksa regionalEndpoints entri untuk state dan setiap stateReason Wilayah. |
| Deleting | Lambda menghapus titik akhir dan menghentikan nama domainnya. Untuk MultiRegion dan PerRegion titik akhir, Lambda menghapus titik akhir dari semua Wilayah. |
Setelah penghapusan selesai, titik akhir dihapus secara permanen. Nama domainnya sudah pensiun, dan Lambda tidak pernah menetapkannya ke titik akhir lain di akun mana pun. Operasi ini tidak dapat dibalik. |
Untuk titik akhir yang ada, Lambda state terus disetel selama Active pembaruan titik akhir. Periksa updateStatus untuk menentukan apakah pembaruan terbaru adalahInProgress,Successful, atauFailed. Misalnya, saat Anda mengubah bobot revisi titik akhir, updateStatus adalah InProgress saat tetap. state Active Saat bobot baru berlaku, updateStatus ubah menjadiSuccessful.
- InProgress
-
Lambda menerapkan pembaruan titik akhir.
- Sukses
-
Pembaruan endpoint terbaru selesai dan berlaku.
- Gagal
-
Pembaruan endpoint terbaru gagal. Periksa
updateStatusReasonbidang danregionalEndpointsuntuk detailnya. UntukMultiRegiondanPerRegiontitik akhir, beberapa Wilayah mungkin menggunakan konfigurasi sebelumnya sementara Wilayah lain menggunakan konfigurasi yang diminta. Perbaiki penyebab yang dilaporkan, lalu panggilUpdateWebFunctionEndpointlagi dengan konfigurasi yang dimaksudkan untuk merekonsiliasi titik akhir.
Status Fungsi Web, status revisi, dan status titik akhir bersifat independen. Fungsi Web dapat berada dalam status Aktif sementara salah satu titik akhirnya masih Tertunda atau Gagal. Demikian pula, revisi dapat Aktif bahkan jika tidak ada titik akhir yang saat ini merutekan lalu lintas ke sana.
Revisi Aktif, titik akhir Aktif, atau pembaruan titik akhir yang berhasil tidak mengonfirmasi bahwa server Anda dimulai. Lambda tidak memeriksa apakah server Anda mendengarkan saat membuat atau memperbarui titik akhir untuk menggunakan revisi. Setelah setiap penerapan, kirim permintaan pengujian dan periksa log aplikasi Anda.
Lingkungan eksekusi
Lingkungan eksekusi adalah instance komputasi terisolasi tempat server web dan aplikasi Anda berjalan. Saat lalu lintas tiba di titik akhir Anda, Lambda merutekan permintaan ke lingkungan eksekusi yang menjalankan kode revisi aktif.
Lambda mengelola lingkungan eksekusi secara otomatis:
-
Scale up — Ketika lalu lintas meningkat, Lambda menciptakan lingkungan eksekusi tambahan dan memulai server HTTP Anda di masing-masing. Lambda meningkatkan lingkungan baru sebelum permintaan untuk menjaga ruang kepala, jadi permintaan jarang menunggu lingkungan baru dimulai (awal yang dingin). Ketika Fungsi Web menskalakan dari nol (permintaan pertama setelah periode tidak ada lalu lintas), ada penundaan awal dingin singkat sementara Lambda menciptakan lingkungan eksekusi. Permintaan menunggu sementara lingkungan eksekusi diinisialisasi. Permintaan mungkin masih gagal jika aplikasi Anda tidak dimulai atau jika tingkat permintaan, lingkungan eksekusi, atau batas akun berlaku. Lihat perinciannya di Perilaku penskalaan untuk Fungsi Web Lambda.
-
Scale down — Ketika lalu lintas menurun, Lambda menghapus lingkungan eksekusi yang tidak lagi dibutuhkan, setelah permintaan dalam penerbangan selesai dengan upaya terbaik. Lambda menskalakan ke lingkungan nol ketika tidak ada lalu lintas.
Jumlah lingkungan eksekusi dan konkurensi mereka dikendalikan oleh dua pengaturan:
-
maxEnvironments(pengaturan titik akhir) — Jumlah maksimum lingkungan eksekusi yang dapat dibuat Lambda untuk titik akhir di setiap Wilayah. Pengaturan ini bersifat opsional. Jika tidak disetel, Lambda menskalakan lingkungan eksekusi sesuai kebutuhan, tunduk pada kuota akun Anda. -
maxConcurrencyPerEnvironment(pengaturan revisi) — Jumlah maksimum permintaan HTTP yang ditangani oleh satu lingkungan eksekusi pada saat yang bersamaan. Nilai yang valid adalah 1-128. Defaultnya adalah 64.
Lambda menetapkan batas konkurensi dinamis untuk setiap lingkungan eksekusi. Batas ini tidak pernah melebihimaxConcurrencyPerEnvironment. Batas atas untuk konkurensi titik akhir maxEnvironments dikalikan dengan batas dinamis ini. Kapasitas aktual mungkin lebih rendah karena Lambda menyesuaikan konkurensi per lingkungan berdasarkan pemanfaatan sumber daya dan menerapkan titik akhir dan batas akun. Misalnya, Anda mengatur maxEnvironments ke 20 dan maxConcurrencyPerEnvironment 64. Titik akhir kemudian menangani hingga 1.280 permintaan bersamaan di Wilayah. Ini menangani lebih sedikit jika Lambda menetapkan batas dinamis di bawah 64. Untuk panduan tentang pengaturan ini, lihatPerilaku penskalaan untuk Fungsi Web Lambda.
Permintaan penanganan
Kode Fungsi Web Anda berjalan sebagai server HTTP standar yang mendengarkan pada port. Lambda mengirimkan permintaan HTTP masuk ke server Anda dan mengembalikan tanggapan ke klien. Anda dapat menggunakan kerangka Node.js web, middleware, atau router apa pun.
Siklus hidup permintaan berfungsi sebagai berikut:
-
Klien mengirimkan permintaan HTTP ke nama domain endpoint.
-
Lambda mengautentikasi permintaan (untuk IamAuthtitik akhir) atau meneruskannya (untuk titik akhir). ApplicationManaged
-
Lambda merutekan permintaan ke lingkungan eksekusi berdasarkan bobot revisi titik akhir.
-
Server HTTP lingkungan eksekusi memproses permintaan dan mengembalikan respons.
-
Lambda mengembalikan respons ke klien.
Setiap permintaan dapat berjalan hingga 900 detik (15 menit). Anda dapat mengonfigurasi batas waktu dari 3 hingga 900 detik menggunakan pengaturan revisi. timeoutSeconds Waktu habis default adalah 30 detik.
Setiap lingkungan eksekusi Web Function menangani beberapa permintaan bersamaan, sehingga kode aplikasi Anda harus aman untuk digunakan bersamaan. Untuk detail tentang model konkurensi, lihatNode.js model eksekusi.