Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagaimana Lambda bekerja
Fungsi Lambda adalah blok bangunan dasar yang Anda gunakan untuk membangun aplikasi Lambda. Untuk menulis fungsi, penting untuk memahami konsep inti dan komponen yang membentuk model pemrograman Lambda. Bagian ini memandu Anda melalui elemen dasar yang perlu Anda ketahui untuk mulai membangun aplikasi tanpa server dengan Lambda.
-
Fungsi lambda dan penangan fungsi- Fungsi Lambda adalah blok kecil kode yang berjalan sebagai respons terhadap peristiwa. Fungsi adalah blok bangunan dasar yang Anda gunakan untuk membangun aplikasi. Function handler adalah titik masuk untuk objek peristiwa yang diproses kode fungsi Lambda Anda.
-
Lingkungan eksekusi Lambda dan runtime- Lingkungan eksekusi Lambda mengelola sumber daya yang diperlukan untuk menjalankan fungsi Anda. Runtime adalah lingkungan khusus bahasa yang dijalankan fungsi Anda.
-
Peristiwa dan pemicu- Lain Layanan AWS nya dapat memanggil fungsi Anda sebagai respons terhadap peristiwa tertentu.
-
Izin dan peran Lambda- Kontrol siapa yang dapat mengakses fungsi Anda dan fungsi apa Layanan AWS lagi yang dapat berinteraksi dengan Anda.
Tip
Jika Anda ingin memulai dengan memahami pengembangan tanpa server secara lebih umum, lihat Mem ahami perbedaan antara pengembangan tradisional dan tanpa server di Panduan Pengembang AWS Tanpa Server.
Fungsi lambda dan penangan fungsi
Di Lambda, fungsi adalah blok bangunan dasar yang Anda gunakan untuk membuat aplikasi. Fungsi Lambda adalah sepotong kode yang berjalan sebagai respons terhadap peristiwa, seperti pengguna memilih tombol di situs web atau file yang diunggah ke bucket Amazon Simple Storage Service (Amazon S3). Dengan fungsi tahan lama, kode Anda dapat menjeda eksekusi di antara langkah-langkah, mempertahankan status secara otomatis, menjadikannya ideal untuk alur kerja yang berjalan lama seperti pemrosesan pesanan atau moderasi konten. Anda dapat menganggap fungsi sebagai semacam program mandiri dengan properti berikut.
Handler fungsi Lambda adalah metode dalam kode fungsi Anda yang memproses peristiwa. Ketika fungsi berjalan sebagai respons terhadap suatu peristiwa, Lambda menjalankan pengendali fungsi. Data tentang peristiwa yang menyebabkan fungsi berjalan diteruskan langsung ke handler. Sementara kode dalam fungsi Lambda dapat berisi lebih dari satu metode atau fungsi, fungsi Lambda hanya dapat memiliki satu handler.
Untuk membuat fungsi Lambda, Anda menggabungkan kode fungsi dan dependensinya dalam paket penerapan. Lambda mendukung dua jenis paket penyebaran, arsip fil e.zip dan gambar kontainer.
-
Suatu fungsi memiliki satu pekerjaan atau tujuan tertentu
-
Mereka berjalan hanya ketika diperlukan dalam menanggapi peristiwa tertentu
-
Mereka secara otomatis berhenti berjalan setelah selesai
Lingkungan eksekusi Lambda dan runtime
Fungsi Lambda berjalan di dalam lingkungan eksekusi yang aman dan terisolasi yang dikelola Lambda untuk Anda. Untuk fungsi yang tahan lama, lingkungan eksekusi mencakup komponen tambahan untuk manajemen status dan koordinasi alur kerja. Lingkungan eksekusi mengelola proses dan sumber daya yang diperlukan untuk menjalankan fungsi Anda. Ketika fungsi pertama kali dipanggil, Lambda menciptakan lingkungan eksekusi baru untuk fungsi dijalankan. Setelah fungsi selesai berjalan, Lambda tidak menghentikan lingkungan eksekusi segera; jika fungsi dipanggil lagi, Lambda dapat menggunakan kembali lingkungan eksekusi yang ada.
Lingkungan eksekusi Lambda juga berisi runtime, lingkungan khusus bahasa yang menyampaikan informasi peristiwa dan respons antara Lambda dan fungsi Anda. Lambda menyediakan sejumlah runtime ter kelola untuk bahasa pemrograman paling populer, atau Anda dapat membuatnya sendiri.
Untuk runtime terkelola, Lambda secara otomatis menerapkan pembaruan keamanan dan patch ke fungsi yang menggunakan runtime.
Peristiwa dan pemicu
Anda juga dapat memanggil fungsi Lambda secara langsung dengan menggunakan konsol Lambda, AWS CLI
Untuk membuat fungsi Anda merespons peristiwa, Anda mengatur pem icu. Pemicu menghubungkan fungsi Anda ke sumber peristiwa, dan fungsi Anda dapat memiliki beberapa pemicu. Ketika suatu peristiwa terjadi, Lambda menerima data peristiwa sebagai dokumen JSON dan mengubahnya menjadi objek yang dapat diproses kode Anda. Anda dapat menentukan format JSON berikut untuk acara Anda dan runtime Lambda mengonversi JSON ini menjadi objek sebelum meneruskannya ke handler fungsi Anda.
contoh acara Lambda kustom
{ "Location": "SEA", "WeatherData":{ "TemperaturesF":{ "MinTempF": 22, "MaxTempF": 78 }, "PressuresHPa":{ "MinPressureHPa": 1015, "MaxPressureHPa": 1027 } } }
Layanan streaming dan antrian seperti Amazon Kinesis atau Amazon SQS menggunakan pemetaan sumber peristiwa alih- alih pemicu standar. Pemetaan sumber peristiwa mensurvei sumber untuk data baru, mengumpulkan catatan bersama, dan kemudian memanggil fungsi Anda dengan peristiwa batch. Untuk informasi selengkapnya, lihat Bagaimana pemetaan sumber peristiwa berbeda dari pemicu langsung.
Untuk memahami cara kerja pemicu, mulailah dengan menyelesaikan tutorial Gunakan pemicu Amazon S3, atau untuk gambaran umum tentang penggunaan pemicu dan instruksi untuk membuat pemicu menggunakan konsol Lambda, lihatMengintegrasikan layanan lainnya.
Izin dan peran Lambda
Untuk Lambda, ada dua jenis izin utama yang perlu Anda konfigurasi:
-
Izin yang dibutuhkan fungsi Anda untuk mengakses lainnya Layanan AWS
-
Izin yang dibutuhkan pengguna lain dan Layanan AWS untuk mengakses fungsi Anda
Bagian berikut menjelaskan kedua jenis izin ini dan membahas praktik terbaik untuk menerapkan izin hak istimewa terendah.
Izin untuk fungsi untuk mengakses lainnya AWS sumber daya
Fungsi Lambda sering perlu mengakses AWS sumber daya lain dan melakukan tindakan pada mereka. Misalnya, fungsi mungkin membaca item dari tabel DynamoDB, menyimpan objek dalam bucket S3, atau menulis ke antrian Amazon SQS. Untuk memberikan fungsi izin yang mereka butuhkan untuk melakukan tindakan ini, Anda menggunakan peran eksekusi .
Peran eksekusi Lambda adalah jenis peran khusus AWS Identity and Access Management (IAM) https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html, identitas yang Anda buat di akun Anda yang memiliki izin khusus yang terkait dengannya yang ditentukan dalam kebijakan.
Setiap fungsi Lambda harus memiliki peran eksekusi, dan satu peran dapat digunakan oleh lebih dari satu fungsi. Ketika fungsi dipanggil, Lambda mengambil peran eksekusi fungsi dan diberikan izin untuk mengambil tindakan yang ditentukan dalam kebijakan peran.
Saat Anda membuat fungsi di konsol Lambda, Lambda secara otomatis membuat peran eksekusi untuk fungsi Anda. Kebijakan peran memberikan izin dasar fungsi Anda untuk menulis keluaran log ke Amazon CloudWatch Logs. Untuk memberikan izin fungsi Anda untuk melakukan tindakan pada AWS sumber daya lain, Anda perlu mengedit peran untuk menambahkan izin tambahan.
Cara termudah untuk menambahkan izin adalah dengan menggunakan kebijakan ter AWS kelola. Kebijakan terkelola dibuat dan dikelola oleh AWS dan memberikan izin untuk banyak kasus penggunaan umum. Misalnya, jika fungsi Anda melakukan operasi CRUD pada tabel DynamoDB, Anda dapat menambahkan AmazonDynamoDBFullAccess kebijakan ke peran Anda.
Izin untuk pengguna dan sumber daya lain untuk mengakses fungsi Anda
Untuk memberikan Layanan AWS izin lain untuk mengakses fungsi Lambda Anda, Anda menggunakan kebijakan berbasis sumber daya. Di IAM, kebijakan berbasis sumber daya dilampirkan ke sumber daya (dalam hal ini, fungsi Lambda Anda) dan menentukan siapa yang dapat mengakses sumber daya dan tindakan apa yang diizinkan untuk diambil.
Agar fungsi lain Layanan AWS dapat memanggil fungsi Anda melalui pemicu, kebijakan berbasis sumber daya fungsi Anda harus memberikan izin layanan tersebut untuk menggunakan tindakan tersebut. lambda:InvokeFunction Jika Anda membuat pemicu menggunakan konsol, Lambda secara otomatis menambahkan izin ini untuk Anda.
Untuk memberikan izin kepada AWS pengguna lain untuk mengakses fungsi Anda, Anda dapat mendefinisikannya dalam kebijakan berbasis sumber daya fungsi Anda dengan cara yang persis sama seperti untuk sumber daya lain Layanan AWS . Anda juga dapat menggunakan kebijakan berbasis identitas yang terkait dengan pengguna.
Praktik terbaik untuk izin Lambda
Saat Anda menetapkan izin menggunakan kebijakan IAM, praktik terbaik keamanan adalah hanya memberikan izin yang diperlukan untuk melakukan tugas. Ini dikenal sebagai prinsip hak istimewa paling kecil. Untuk mulai memberikan izin untuk fungsi Anda, Anda dapat memilih untuk menggunakan kebijakan ter AWS kelola. Kebijakan terkelola dapat menjadi cara tercepat dan termudah untuk memberikan izin untuk melakukan tugas, tetapi kebijakan tersebut mungkin juga menyertakan izin lain yang tidak Anda perlukan. Saat Anda beralih dari pengembangan awal melalui pengujian dan produksi, kami sarankan Anda mengurangi izin menjadi hanya izin yang diperlukan dengan menentukan kebijakan yang dikelola pelanggan Anda sendiri.
Prinsip yang sama berlaku saat memberikan izin untuk mengakses fungsi Anda menggunakan kebijakan berbasis sumber daya. Misalnya, jika Anda ingin memberikan izin kepada Amazon S3 untuk memanggil fungsi Anda, praktik terbaik adalah membatasi akses ke bucket individual, atau bucket khususnya Akun AWS, daripada memberikan izin menyeluruh ke layanan S3.