Sebelum fungsi AWS Lambda, mari kita fahami:
Apa itu Tanpa Server?
Tanpa pelayan adalah istilah yang secara amnya merujuk kepada aplikasi tanpa pelayan. Aplikasi tanpa pelayan adalah aplikasi yang tidak memerlukan penyediaan pelayan dan tidak memerlukan pengurusan pelayan.
Apa itu AWS Lambda?
AWS Lambda adalah platform pengkomputeran tanpa server yang berasaskan acara yang disediakan oleh Amazon sebagai sebahagian daripada Perkhidmatan Web Amazon. Oleh itu, anda tidak perlu risau tentang sumber AWS mana yang akan dilancarkan, atau bagaimana anda menguruskannya. Sebaliknya, anda perlu meletakkan kod pada Lambda, dan ia berjalan.
Dalam AWS Lambda kod tersebut dilaksanakan berdasarkan respons peristiwa dalam perkhidmatan AWS seperti menambah / menghapus fail dalam baldi S3, permintaan HTTP dari gerbang API Amazon, dll. Namun, Amazon Lambda hanya dapat digunakan untuk melaksanakan tugas latar belakang.
Fungsi AWS Lambda membantu anda untuk memusatkan perhatian pada logik produk dan perniagaan utama anda dan bukannya menguruskan kawalan akses sistem operasi (OS), penambalan OS, ukuran kanan, penyediaan, penskalaan, dll.
Dalam tutorial AWS Lambda ini untuk pemula, anda akan belajar:
- Bagaimana AWS Lambda berfungsi?
- Peristiwa yang Mencetuskan AWS Lambda
- Konsep AWS Lambda
- AWS Lambda VS AWS EC2
- AWS Lambda VS AWS Elastik Beanstalk
- Gunakan Kes AWS Lambda
- Amalan terbaik fungsi Lambda
- Bila tidak menggunakan AWS Lambda
- Kelebihan menggunakan AWS Lambda
- Batasan AWS Lambda
Bagaimana AWS Lambda berfungsi?
Contoh AWS Lambda berikut dengan gambarajah blok menerangkan cara kerja AWS Lambda dalam beberapa langkah mudah:
Langkah 1: Muat naik dahulu kod AWS Lambda anda dalam bahasa yang disokong oleh AWS Lambda. Java, Python, Go, dan C # adalah beberapa bahasa yang disokong oleh fungsi AWS Lambda.
Langkah 2: Ini adalah beberapa perkhidmatan AWS yang membolehkan anda mencetuskan AWS Lambda.
Langkah 3: AWS Lambda membantu anda memuat naik kod dan perincian acara yang harus dicetuskan.
Langkah 4: Menjalankan AWS Lambda Code apabila dicetuskan oleh perkhidmatan AWS:
Langkah 5: AWS mengenakan caj hanya apabila kod lambda AWS dilaksanakan, dan bukan sebaliknya.
Ini akan berlaku dalam senario berikut:
- Muat naik fail dalam baldi S3
- Apabila HTTP get / post endpoint URL dipukul
- Untuk menambah / mengubah dan menghapus jadual Dynamo DB
- Dalam proses pengumpulan aliran data
- Pemberitahuan tolak
- Hosting laman web
- Penghantaran e-mel
Catatan: Anda harus ingat bahawa anda akan mengenakan bayaran untuk perkhidmatan AWS hanya apabila kod AWS Lambda dilaksanakan, jika tidak, anda tidak perlu membayar apa-apa.
Peristiwa yang Mencetuskan AWS Lambda
Berikut adalah Acara yang akan dicetuskan semasa anda menggunakan AWS Lambda.
- Masukkan, kemas kini dan hapus data jadual Dynamo DB
- Untuk memasukkan pemberitahuan tolak di SNS
- Untuk mencari sejarah log di CloudTrail
- Masuk ke objek S3
- DynamoDB dapat mencetuskan AWS Lambda setiap kali ada data yang ditambahkan, diubah, dan dihapuskan dalam jadual.
- Membantu anda menjadualkan acara untuk menjalankan tugas mengikut corak waktu biasa.
- Pengubahsuaian objek dalam baldi S3
- Pemberitahuan dihantar dari Amazon SNS.
- AWS Lambda boleh digunakan untuk memproses log CloudTrail
- API Gateway membolehkan anda mencetuskan AWS Lambda pada kaedah GET / POST.
Konsep AWS Lambda
Fungsi:
Fungsi adalah program atau skrip yang dijalankan di AWS Lambda. Lambda menyampaikan peristiwa permintaan ke dalam fungsi anda, yang memproses suatu peristiwa dan mengembalikan tindak balasnya.
Masa Jalan:
Runtime membolehkan fungsi dalam pelbagai bahasa yang berjalan di persekitaran pelaksanaan asas yang sama. Ini membantu anda untuk mengkonfigurasi fungsi anda dalam jangka masa. Ia juga sesuai dengan bahasa pengaturcaraan yang anda pilih.
Sumber acara:
Sumber acara adalah perkhidmatan AWS, seperti Amazon SNS, atau perkhidmatan khusus. Fungsi pencetus ini membantu anda melaksanakan logiknya.
Lapisan Lambda:
Lapisan lambda adalah mekanisme pengedaran yang penting untuk perpustakaan, waktu operasi tersuai, dan pergantungan fungsi penting yang lain. Komponen AWS ini juga membantu anda mengurus kod fungsi pengembangan anda secara berasingan daripada kod dan sumber yang tidak berubah yang digunakannya.
Aliran log:
Aliran log membolehkan anda memberi penjelasan kod fungsi anda dengan penyataan pembalakan tersuai yang membantu anda menganalisis aliran pelaksanaan dan prestasi fungsi AWS Lambda anda.
Cara menggunakan AWS Lambda
Sekarang, kita akan belajar bagaimana menggunakan AWS Lambda dengan contoh AWS Lambda:
Langkah 1 ) Pergi https://aws.amazon.com/lambda/ dan Bermula
Langkah 2 ) Buat akaun atau log masuk dengan akaun anda yang ada
Langkah 3 ) Di halaman Lambda seterusnya,
- Edit kod
- Klik Jalankan
Langkah 4 ) Anda akan melihat output
AWS Lambda VS AWS EC2
Berikut adalah beberapa perbezaan utama antara AWS Lambda dan EC2.
Parameter | AWS Lambda | AWS EC2 |
Definisi | AWS Lambda adalah Platform sebagai Perkhidmatan (PaaS). Ini membantu anda menjalankan dan melaksanakan kod backend anda. | AWS EC2 Merupakan Infrastruktur sebagai Perkhidmatan (laaS). Ia menyediakan sumber pengkomputeran maya. |
Kelenturan | Tidak menawarkan fleksibiliti untuk log masuk untuk menghitung keadaan. Ini membolehkan anda memilih sistem operasi atau runtime bahasa yang disesuaikan. | Menawarkan fleksibiliti untuk memilih pelbagai keadaan, sistem operasi khusus, patch keselamatan, dan rangkaian, dll. |
Proses pemasangan | Anda perlu memilih persekitaran anda di mana anda mahu menjalankan kod tersebut dan memasukkan kod ke AWS Lambda. | Untuk pertama kalinya di EC2, anda harus memilih OS dan memasang semua perisian yang diperlukan dan kemudian tekan kod anda di EC2. |
Sekatan persekitaran | Ia terhad kepada beberapa bahasa. | Tiada sekatan persekitaran. |
AWS Lambda VS AWS Elastik Beanstalk
Berikut adalah beberapa perbezaan utama antara AWS Lambda dan Elastic Beanstalk.
Parameter | AWS Beanstalk elastik | AWS Lambda |
Tugas utama | Terapkan dan atur aplikasi di AWS Cloud tanpa perlu risau tentang infrastruktur yang menjalankan aplikasi tersebut. | AWS Lambda digunakan untuk menjalankan dan melaksanakan kod Back-end anda. Anda tidak dapat menggunakannya untuk menyebarkan aplikasi. |
Pemilihan sumber AWS | Ini memberi anda Kebebasan untuk memilih sumber AWS; Sebagai contoh, anda boleh memilih contoh EC2 yang optimum sesuai dengan aplikasi anda. | Anda tidak dapat memilih sumber AWS, seperti jenis contoh EC2, Lambda menawarkan sumber berdasarkan beban kerja anda. |
Jenis sistem | Ia adalah sistem yang bernegara. | Ia adalah sistem tanpa kenegaraan. |
Gunakan Kes AWS Lambda
AWS Lambda digunakan untuk pelbagai aplikasi seperti:
- Membantu anda untuk proses ETL
- Membolehkan anda melakukan pemprosesan fail masa nyata dan pemprosesan aliran masa nyata
- Gunakan untuk membuat aplikasi web
- Gunakan dalam produk Amazon seperti Alexa Chatbots dan Amazon Echo / Alexa
- Pemprosesan data (analisis streaming masa nyata)
- Sandaran automatik tugas sehari-hari
- Bahagian belakang yang boleh diskalakan (aplikasi mudah alih, peranti loT)
- Membantu anda melaksanakan logik backend sisi pelayan
- Membolehkan anda menapis dan Mengubah data
Amalan terbaik fungsi Lambda
Berikut adalah beberapa amalan terbaik fungsi AWS Lambda:
- Gunakan "timeout" yang betul.
- Gunakan fungsi penyimpanan tempatan yang berukuran 500MB di folder / temp
- Meminimumkan penggunaan kod permulaan yang tidak berkaitan langsung dengan memproses acara semasa.
- Anda harus menggunakan pemantauan CloudWatch bawaan fungsi Lambda anda untuk melihat dan mengoptimumkan latensi permintaan.
Bila tidak menggunakan AWS Lambda
Berikut adalah situasi di mana Lambda pasti bukan pilihan yang ideal:
- Tidak wajar menggunakan pakej atau aplikasi perisian AWS Lambda yang bergantung pada memanggil RPC Windows yang mendasari
- Sekiranya digunakan untuk aplikasi perisian khusus dengan perjanjian pelesenan seperti pemprosesan dokumen MS-Office, pangkalan data Oracle, dll.
- AWS Lambda tidak boleh digunakan untuk proses perkakasan tersuai seperti pecutan GPU, pertalian perkakasan.
Kelebihan menggunakan AWS Lambda
Berikut, kebaikan / faedah menggunakan AWS lambda:
- AWS Lambda adalah alat yang sangat fleksibel untuk digunakan
- Ini membantu anda memberikan akses ke sumber, termasuk VPC
- Pengarang secara langsung dengan editor WYSIWYG di konsol.
- Anda boleh menggunakannya sebagai pemalam untuk Eclipse dan Visual Studio.
- Oleh kerana ia adalah seni bina tanpa pelayan, anda tidak perlu risau untuk mengurus atau menyediakan pelayan.
- Anda tidak perlu menyediakan Mesin Maya.
- Membantu pembangun untuk menjalankan dan melaksanakan tindak balas kod terhadap peristiwa tanpa membina infrastruktur apa pun.
- Anda hanya perlu mengambil masa pengiraan, hanya apabila kod anda berjalan.
- Anda dapat memantau prestasi kod anda dalam masa nyata melalui CloudWatch.
- Ia membolehkan anda menjalankan kod anda tanpa menyediakan atau mengurus pelayan lain
- Membantu anda melaksanakan kod hanya apabila diperlukan
- Anda dapat menskalakannya secara automatik untuk menangani beberapa permintaan setiap hari dan bahkan menyokong lebih dari ribuan permintaan setiap saat.
- AWS Lambda dapat dikonfigurasi dengan bantuan pemasa acara luaran untuk melaksanakan tugas yang dijadualkan.
- Fungsi lambda dalam AWS harus dikonfigurasi dengan peristiwa luaran dan pemasa sehingga; ia boleh digunakan untuk penjadualan.
- Fungsi lambda tidak bernegara sehingga dapat ditimbang dengan cepat.
- AWS Lambda pantas sehingga ia akan melaksanakan kod anda dalam milisaat.
Batasan AWS Lambda
Berikut adalah keburukan / kekurangan penggunaan AWS Lambda:
- Alat AWS Lambda tidak sesuai untuk projek kecil.
- AWS Lambda bergantung sepenuhnya pada AWS untuk infrastruktur, jadi anda tidak dapat memasang perisian tambahan jika kod anda memerlukannya.
- Pelaksanaan serentak terhad kepada 100
- AWS Lambda bergantung sepenuhnya kepada AWS untuk infrastruktur; anda tidak boleh memasang perisian tambahan sekiranya kod anda memerlukannya.
- Volume memori boleh berbeza antara 128 hingga 1536 MB.
- Permintaan acara tidak boleh melebihi 128 KB.
- Fungsi Lambda membantu anda menulis log mereka hanya di CloudWatch. Ini adalah satu-satunya alat yang membolehkan anda memantau atau menyelesaikan masalah fungsi anda.
- Tamat masa pelaksanaan kodnya hanya 5 minit.
Ringkasan
- Tanpa pelayan adalah istilah yang secara amnya merujuk kepada aplikasi tanpa pelayan.
- AWS Lambda adalah salah satu perkhidmatan pengkomputeran tanpa pelayan. Oleh itu, anda tidak perlu bimbang sumber AWS mana yang akan dilancarkan, atau bagaimana mereka menguruskannya.
- Fungsi adalah program atau skrip yang dijalankan di Lambda tanpa server AWS.
- Runtime membolehkan fungsi dalam pelbagai bahasa yang berjalan di persekitaran pelaksanaan asas yang sama.
- Sumber acara adalah perkhidmatan AWS, seperti Amazon SNS, atau perkhidmatan khusus.
- Lapisan lambda adalah mekanisme pengedaran yang penting untuk perpustakaan, waktu operasi tersuai, dan pergantungan fungsi penting yang lain.
- Aliran log membolehkan anda memberi penjelasan kod fungsi anda dengan penyataan pembalakan tersuai yang membantu anda menganalisis aliran pelaksanaan dan prestasi fungsi Lambda anda.
- AWS Lambda adalah Platform sebagai Perkhidmatan (PaaS). Ini membantu anda menjalankan dan melaksanakan kod backend anda.
- AWS EC2 Merupakan Infrastruktur sebagai Perkhidmatan (laaS). Ia menyediakan sumber pengkomputeran maya.
- Terapkan dan atur aplikasi di AWS Cloud tanpa perlu risau tentang infrastruktur yang menjalankan aplikasi tersebut.
- AWS Lambda digunakan untuk menjalankan dan melaksanakan kod Back-end anda. Anda tidak dapat menggunakannya untuk menyebarkan aplikasi.
- AWS Lambda membantu anda untuk proses ETL.
- Amalan terbaik fungsi Lambda di AWS adalah menggunakan "timeout" yang betul.
- Tidak wajar menggunakan pakej atau aplikasi perisian AWS Lambda yang bergantung pada memanggil RPC Windows yang mendasari
- AWS Lambda adalah alat yang sangat fleksibel.
- Alat AWS Lambda tidak sesuai untuk projek kecil.
- Peristiwa biasa yang akan dicetuskan ketika anda menggunakan AWS Lambda adalah Memasukkan, mengemas kini dan menghapus jadual Dynamo DB data.