- Komputasi›
- AWS Lambda›
- FAQ
FAQ AWS Lambda
Topik halaman
UmumUmum
T: Apa itu AWS Lambda?
T: Apa itu komputasi nirserver?
Komputasi nirserver memungkinkan Anda membangun serta menjalankan aplikasi dan layanan tanpa memikirkan tentang server. Dengan komputasi tanpa server, aplikasi Anda masih berjalan di server, tetapi semua manajemen server dilakukan oleh AWS. Inti dari komputasi tanpa server adalah AWS Lambda, yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server.
T: Apa saja peristiwa yang dapat memicu fungsi AWS Lambda?
Lihat dokumentasi kami untuk daftar lengkap sumber peristiwa.
T: Kapan saya harus menggunakan AWS Lambda atau Amazon EC2?
Amazon Web Services menawarkan seperangkat layanan komputasi untuk memenuhi berbagai kebutuhan.
Amazon EC2 menawarkan fleksibilitas dengan berbagai jenis instans dan opsi untuk mengustomisasi sistem operasi, pengaturan jaringan dan keamanan, serta seluruh tumpukan perangkat lunak untuk memudahkan Anda memindahkan aplikasi yang sudah ada ke cloud. Dengan Amazon EC2, Anda bertanggung jawab untuk menyediakan kapasitas, memantau kesehatan dan kinerja armada, serta merancang untuk toleransi kesalahan dan skalabilitas. AWS Elastic Beanstalk menawarkan layanan yang mudah digunakan untuk melakukan deployment dan menskalakan aplikasi web tempat Anda mempertahankan kepemilikan dan kontrol penuh atas instans EC2 dasar. Amazon EC2 Container Service adalah layanan manajemen yang dapat diskalakan dan mendukung kontainer Docker. Layanan ini memungkinkan Anda mendistribusikan aplikasi pada klaster terkelola dari instans Amazon EC2 dengan mudah.
AWS Lambda memudahkan untuk mengeksekusi kode dalam menanggapi kejadian, seperti perubahan pada bucket Amazon S3, pembaruan pada tabel Amazon DynamoDB, atau kejadian khusus yang dihasilkan oleh aplikasi atau perangkat Anda. Dengan Lambda, Anda tidak perlu menyediakan instans Anda sendiri; Lambda melakukan semua aktivitas operasional dan administratif untuk Anda, termasuk menyediakan kapasitas, memantau kesehatan armada, menerapkan patch keamanan ke sumber daya komputasi yang mendasarinya, menerapkan kode, menjalankan front end layanan web, dan memantau serta mencatat kode Anda. AWS Lambda memberikan penskalaan yang mudah dan ketersediaan yang sangat baik untuk kode Anda tanpa upaya tambahan dari Anda.
T: Apa saja jenis kode yang dapat berjalan di AWS Lambda?
T: Apa saja bahasa yang didukung AWS Lambda?
AWS Lambda sejak awal mendukung kode Java, Go, PowerShell, Node.js, C#, Python, dan Ruby, serta menyediakan Runtime API yang memungkinkan Anda menggunakan bahasa pemrograman tambahan apa pun untuk menulis fungsi Anda. Baca dokumentasi kami tentang penggunaan Node.js, Python, Java, Ruby, C#, Go dan PowerShell.
T: Dapatkah saya mengakses infrastruktur yang dijalankan AWS Lambda?
T: Bagaimana cara AWS Lambda mengisolasi kode saya?
T: Bagaimana cara AWS Lambda mengamankan kode saya?
T: Mana saja wilayah AWS yang tersedia untuk AWS Lambda?
Silakan lihat Tabel Wilayah Infrastruktur Global AWS.
Fungsi AWS Lambda
T: Apa itu fungsi AWS Lambda?
T: Apakah AWS Lambda akan menggunakan kembali instans fungsi?
Untuk meningkatkan kinerja, AWS Lambda dapat memilih untuk me-retain suatu instans dari fungsi Anda dan menggunakannya kembali untuk melayani permintaan berikutnya, daripada membuat salinan baru. Untuk mempelajari selengkapnya tentang bagaimana Lambda menggunakan kembali instans fungsi, kunjungi dokumentasi kami. Kode Anda seharusnya tidak mengasumsikan bahwa hal ini akan selalu terjadi.
T: Bagaimana jika saya memerlukan ruang scratch pada disk untuk fungsi AWS Lambda saya?
Anda dapat mengonfigurasi setiap fungsi Lambda dengan penyimpanan sementara miliknya sendiri antara 512MB hingga 10.240MB, dalam kenaikan 1MB. Penyimpanan sementara tersedia di setiap direktori /tmp fungsi.
Setiap fungsi memiliki akses hingga 512MB penyimpanan tanpa tambahan biaya. Saat mengonfigurasi fungsi dengan lebih dari 512MB penyimpanan sementara, Anda akan dikenakan biaya berdasarkan jumlah penyimpanan yang Anda konfigurasi, dan seberapa panjang fungsi Anda berjalan, dihitung dalam kenaikan 1ms. Untuk perbandingan, di wilayah AS Timur (Ohio), harga penyimpanan sementara AWS Fargate adalah 0,000111 USD per GB-jam, atau 0,08 USD per GB-bulan. Harga volume penyimpanan gp3 Amazon EBS di AS Timur (Ohio) adalah 0,08 USD per GB-bulan. Harga penyimpanan sementara AWS Lambda adalah 0,0000000309 USD per GB-detik, atau 0,000111 USD per GB-jam dan 0,08 USD per GB-bulan. Untuk mempelajari selengkapnya, lihat Harga AWS Lambda.
T: Bagaimana cara mengonfigurasi aplikasi saya agar menggunakan penyimpanan sementara AWS Lambda?
T: Apakah penyimpanan sementara AWS Lambda terenkripsi?
T: Metrik apa yang dapat saya gunakan untuk memantau penggunaan penyimpanan sementara AWS Lambda?
Anda dapat menggunakan metrik Wawasan Lambda AWS CloudWatch untuk memantau penggunaan penyimpanan sementara Anda. Untuk mempelajari selengkapnya, lihat dokumentasi Wawasan Lambda AWS CloudWatch.
T: Kapan saya harus menggunakan penyimpanan sementara Simple Storage Service (Amazon S3), Amazon EFS, atau AWS Lambda untuk aplikasi nirserver saya?
Jika aplikasi Anda membutuhkan penyimpanan tetap dan berdaya tahan, pertimbangkan untuk menggunakan Simple Storage Service (Amazon S3) atau Amazon EFS. Jika aplikasi Anda memerlukan penyimpanan data yang dibutuhkan oleh kode dalam pemanggilan fungsi tunggal, pertimbangkan untuk menggunakan penyimpanan sementara AWS Lambda sebagai cache sementara. Untuk mempelajari selengkapnya, lihat Pemilihan opsi penyimpanan data AWS Lambda di aplikasi web.
T: Apakah saya dapat menggunakan penyimpanan sementara selagi Konkurensi Terprovisi diaktifkan untuk fungsi saya?
Ya. Namun, Jika aplikasi Anda membutuhkan penyimpanan tetap, pertimbangkan untuk menggunakan Amazon EFS atau Simple Storage Service (Amazon S3). Jika Konkurensi Terprovisi telah diaktifkan untuk fungsi Anda, kode inisialisasi fungsi Anda berjalan selama alokasi dan setiap beberapa jam, karena instans dari fungsi Anda yang berjalan digunakan kembali. Anda dapat melihat waktu inisialisasi di log dan pelacakan setelah instans memproses permintaan. Namun, inisialisasi tetap ditagih bahkan jika instans tidak pernah memproses permintaan. Perilaku inisialisasi Konkurensi Terprovisi ini dapat memengaruhi cara fungsi Anda berinteraksi dengan data yang Anda simpan di penyimpanan sementara, bahkan saat fungsi Anda tidak memproses permintaan. Untuk mempelajari selengkapnya tentang Konkurensi Terprovisi, harap lihat dokumentasi terkait.
T: Bagaimana cara mengonfigurasi aplikasi saya agar menggunakan penyimpanan sementara AWS Lambda?
T: Apakah penyimpanan sementara AWS Lambda terenkripsi?
T: Metrik apa yang dapat saya gunakan untuk memantau penggunaan penyimpanan sementara AWS Lambda?
Anda dapat menggunakan metrik Wawasan Lambda AWS CloudWatch untuk memantau penggunaan penyimpanan sementara Anda. Untuk mempelajari selengkapnya, lihat dokumentasi Wawasan Lambda AWS CloudWatch.
T: Mengapa fungsi AWS Lambda harus stateless?
T: Dapatkah saya menggunakan utas dan proses dalam kode fungsi AWS Lambda?
T: Apa saja batasan yang berlaku untuk kode fungsi AWS Lambda?
T: Bagaimana cara membuat fungsi AWS Lambda menggunakan konsol Lambda?
Jika menggunakan Node.js atau Phyton, Anda dapat menulis kode untuk fungsi Anda dengan editor kode di konsol AWS Lambda yang memungkinkan untuk menulis dan menguji fungsi Anda, dan melihat hasil eksekusi fungsi dalam lingkungan yang kuat dan seperti IDE. Buka konsol untuk memulai.
Anda juga dapat mengemas kode (dan pustaka yang bergantung) sebagai ZIP dan mengunggahnya menggunakan konsol AWS Lambda dari lingkungan lokal atau menentukan lokasi Amazon S3 tempat file ZIP berada. Unggahan tidak boleh lebih dari 50 MB (terkompresi). Anda dapat menggunakan plugin AWS Eclipse untuk menulis dan menerapkan fungsi Lambda di Java. Anda dapat menggunakan plugin Visual Studio untuk menulis dan menerapkan fungsi Lambda di C#, dan Node.js.
T: Bagaimana cara membuat fungsi AWS Lambda menggunakan Lambda CLI?
Anda juga dapat mengemas kode (dan pustaka yang bergantung) sebagai ZIP dan mengunggahnya menggunakan AWS CLI dari lingkungan lokal, atau menentukan lokasi Amazon S3 tempat file ZIP berada. Unggahan tidak boleh lebih dari 50 MB (terkompresi). Kunjungi panduan Memulai Lambda untuk memulai.
T: Apakah AWS Lambda mendukung variabel lingkungan?
Ya. Anda dapat dengan mudah membuat dan memodifikasi variabel lingkungan dari Konsol AWS Lambda, CLI, atau SDK. Untuk mempelajari selengkapnya tentang variabel lingkungan, lihat dokumentasi.
T: Dapatkah saya menyimpan informasi sensitif dalam variabel lingkungan?
Untuk informasi sensitif, seperti kata sandi basis data, sebaiknya gunakan enkripsi di sisi klien menggunakan AWS Key Management Service dan simpan nilai yang dihasilkan sebagai teks sandi dalam variabel lingkungan Anda. Anda harus menyertakan logika dalam kode fungsi AWS Lambda Anda untuk mendekripsi nilai-nilai ini.
T: Bagaimana cara mengelola fungsi AWS Lambda?
Anda dapat menyesuaikan dan mengamankan sumber daya yang terkait dengan fungsi Lambda Anda menggunakan API atau konsol Lambda. Untuk mempelajari selengkapnya mengenai hal itu, lihat dokumentasi.
T: Apakah saya dapat melakukan pembagian kode lintas fungsi?
Ya, Anda dapat mengemas kode apa pun (kerangka kerja, SDK, pustaka, dan lainnya) sebagai Lapisan Lambda dan mengelola serta membagikannya dengan mudah di berbagai fungsi.
T: Bagaimana cara memantau fungsi AWS Lambda?
AWS Lambda secara otomatis memantau fungsi Lambda untuk Anda, melaporkan metrik real-time melalui Amazon CloudWatch, termasuk total permintaan, penggunaan konkurensi tingkat akun dan tingkat fungsi, latensi, tingkat kesalahan, dan permintaan terbatas. Anda dapat melihat statistik untuk setiap fungsi Lambda melalui konsol Amazon CloudWatch atau melalui konsol AWS Lambda. Anda juga dapat memanggil API pemantauan pihak ketiga dalam fungsi Lambda Anda.
Kunjungi Memecahkan masalah metrik CloudWatch untuk mempelajari selengkapnya. Biaya standar untuk AWS Lambda berlaku untuk penggunaan metrik bawaan Lambda.
T: Bagaimana cara memecahkan masalah kegagalan dalam fungsi AWS Lambda?
AWS Lambda secara otomatis terintegrasi dengan Amazon CloudWatch logs, membuat grup log untuk setiap fungsi Lambda, dan menyediakan entri log peristiwa siklus aktif aplikasi dasar, termasuk logging sumber daya yang dikonsumsi untuk setiap penggunaan fungsi itu. Anda dapat dengan mudah memasukkan pernyataan logging tambahan ke dalam kode Anda. Anda juga dapat memanggil API logging pihak ketiga dalam fungsi Lambda Anda. Kunjungi Memecahkan masalah fungsi Lambda untuk mempelajari selengkapnya. Tarif Amazon CloudWatch Logs akan berlaku.
T: Bagaimana cara menskalakan fungsi AWS Lambda?
T: Bagaimana sumber daya komputasi ditetapkan untuk fungsi AWS Lambda?
Dalam model sumber daya AWS Lambda, Anda memilih jumlah memori yang diinginkan untuk fungsi Anda, serta dialokasikan daya CPU proporsional dan sumber daya lainnya. Misalnya, memilih memori 256 MB akan mengalokasikan kira-kira dua kali lipat daya CPU ke fungsi Lambda Anda seperti meminta memori 128 MB, dan setengah kali lipat daya CPU seperti memilih memori 512 MB. Untuk mempelajari lebih lanjut, lihat dokumentasi Konfigurasi Fungsi kami.
Anda dapat mengatur memori Anda dari 128 MB menjadi 10.240 MB.
T: Kapan saya harus menggunakan fungsi AWS Lambda dengan memori lebih dari 3008 MB?
T: Berapa lama fungsi AWS Lambda dapat dieksekusi?
T: Bagaimana perhitungan biaya untuk penggunaan fungsi AWS Lambda?
AWS Lambda diberi harga berdasarkan bayar per penggunaan. Lihat halaman harga AWS Lambda untuk detailnya.
T: Dapatkah saya menghemat uang di AWS Lambda dengan Compute Savings Plans?
T: Apakah AWS Lambda mendukung versioning?
Ya. Secara default, setiap fungsi AWS Lambda memiliki satu versi kode terkini. Klien fungsi Lambda Anda dapat memanggil versi tertentu atau mendapatkan implementasi terbaru. Baca dokumentasi kami tentang versioning fungsi Lambda.
T: Setelah kode diunggah, berapa lama fungsi AWS Lambda saya akan siap dipanggil?
T: Dapatkah saya menggunakan versi pustaka yang didukung milik sendiri?
T: Bagaimana cara kerja harga bertingkat?
AWS Lambda menawarkan tingkat harga diskon untuk durasi fungsi sesuai permintaan bulanan di atas batas tertentu. Harga bertingkat tersedia untuk fungsi yang berjalan di arsitektur x86 dan Arm. Tingkat harga Lambda diterapkan ke agregat durasi sesuai permintaan bulanan dari fungsi Anda yang berjalan pada arsitektur yang sama (masing-masing x86 atau Arm), di wilayah yang sama, di dalam akun. Jika Anda menggunakan penagihan gabungan di AWS Organizations, tingkat harga diterapkan ke durasi bulanan agregat dari fungsi Anda yang berjalan di arsitektur yang sama, di wilayah yang sama, di seluruh akun dalam organisasi. Misalnya, jika Anda menjalankan fungsi Lambda x86 di wilayah AS Timur (Ohio), Anda akan membayar 0,0000166667 USD untuk setiap GB-detik untuk 6 miliar GB-detik pertama per bulan, 0,0000150000 USD untuk setiap GB-detik untuk 9 miliar GB-detik berikutnya per bulan, dan 0,0000133334 USD untuk setiap GB-detik lebih dari 15 miliar GB-detik per bulan, di wilayah tersebut. Harga untuk Permintaan, Konkurensi yang Disediakan, dan Durasi Konkurensi yang Disediakan tetap tidak berubah. Untuk informasi selengkapnya, lihat Harga AWS Lambda
T: Dapatkah saya memanfaatkan harga bertingkat dan Compute Savings Plans?
Ya. Penggunaan Lambda yang dicakup oleh komitmen Savings Plans per jam Anda ditagihkan dengan tarif dan diskon CSP yang berlaku. Penggunaan lainnya yang tidak dicakup oleh komitmen ini akan ditagihkan dengan tarif sesuai tingkat durasi fungsi agregat bulanan Anda.
Menggunakan AWS Lambda untuk memproses kejadian AWS
T: Apa itu sumber peristiwa?
T: Sumber kejadian apa yang dapat digunakan dengan AWS Lambda?
Lihat dokumentasi kami untuk daftar lengkap sumber peristiwa.
T: Bagaimana peristiwa direpresentasikan di AWS Lambda?
Kejadian diteruskan ke fungsi Lambda sebagai parameter input kejadian. Untuk sumber kejadian di mana kejadian tiba dalam batch, seperti Amazon SQS, Amazon Kinesis, dan Amazon DynamoDB Streams, parameter kejadian dapat berisi beberapa peristiwa dalam satu panggilan, berdasarkan ukuran batch yang Anda minta. Untuk mempelajari selengkapnya tentang notifikasi peristiwa Amazon S3, kunjungi Mengonfigurasi Notifikasi untuk Peristiwa Amazon S3. Untuk mempelajari selengkapnya tentang Amazon DynamoDB Streams, kunjungi Panduan Developer DynamoDB Streams. Untuk mempelajari selengkapnya tentang memanggil fungsi Lambda menggunakan Amazon SNS, kunjungi Panduan Developer Amazon SNS. Untuk informasi selengkapnya tentang peristiwa Amazon Cognito, kunjungi Amazon Cognito. Untuk informasi selengkapnya tentang log AWS CloudTrail dan mengaudit panggilan API di seluruh layanan AWS, lihat AWS CloudTrail.
T: Bagaimana cara membuat fungsi AWS Lambda merespons perubahan di bucket Amazon S3?
T: Bagaimana cara membuat fungsi AWS Lambda merespons pembaruan di tabel Amazon DynamoDB?
T: Bagaimana cara menggunakan fungsi AWS Lambda untuk memproses rekaman di aliran Amazon Kinesis?
T: Bagaimana AWS Lambda memproses data dari aliran Amazon Kinesis dan Amazon DynamoDB Streams?
T: Bagaimana seharusnya saya memilih antara AWS Lambda dan Amazon Kinesis Data Analytics untuk kebutuhan analitik saya?
AWS Lambda memungkinkan Anda melakukan agregasi berbasis waktu (seperti penjumlahan, maks., jumlah, rata-rata, dll.) dalam jangka waktu singkat hingga 15 menit untuk data di Amazon Kinesis atau Amazon DynamoDB Streams, melalui partisi logis tunggal seperti serpihan. Fitur ini memberi Anda opsi menyiapkan analitik sederhana dengan mudah untuk aplikasi berbasis kejadian tanpa menambahkan kerumitan arsitektur, karena logika bisnis dan analitik Anda dapat ditempatkan dalam fungsi yang sama. Lambda memungkinkan agregasi melebihi 15 menit jendela tumbling maksimum berdasarkan tanda waktu kejadian. Amazon Kinesis Data Analytics memungkinkan Anda membangun aplikasi analitik yang lebih kompleks untuk mendukung pilihan pemrosesan yang fleksibel dan toleransi kesalahan yang tangguh dengan pemrosesan tepat satu kali tanpa duplikat, serta analitik yang dapat dilakukan di seluruh aliran data di beberapa partisi logis. Dengan KDA, Anda dapat menganalisis data melalui beberapa tipe jendela agregasi (jendela tumbling, jendela stagger, jendela geser, jendela sesi), baik menggunakan waktu kejadian maupun waktu pemrosesan.
AWS Lambda | Amazon KDA | |
---|---|---|
Jendela Tumbling | Ya | Ya |
Jendela Stagger | Tidak | Ya |
Jendela Geser | Tidak | Ya |
Jendela Sesi | Tidak | Ya |
Pengayaan | Tidak | Ya |
Tabel input dan referensi gabungan | Tidak | Ya |
Pisahkan aliran input | Tidak | Ya |
Pemrosesan tepat satu kali | Tidak | Ya |
Jendela waktu maksimum | 15 menit | Tanpa batas |
Cakupan agregasi | Partisi/shard | Aliran |
Semantik waktu | Waktu kejadian | Waktu kejadian, Waktu pemrosesan |
T: Bagaimana cara menggunakan fungsi AWS Lambda untuk merespons notifikasi yang dikirimkan oleh Amazon Simple Notification Service (SNS)?
T: Bagaimana cara menggunakan fungsi AWS Lambda untuk merespons email yang dikirimkan oleh Amazon Simple Email Service (SES)?
T: Bagaimana cara menggunakan fungsi AWS Lambda untuk merespons alarm Amazon CloudWatch?
Pertama, konfigurasi alarm untuk mengirim pemberitahuan Amazon SNS. Kemudian dari konsol AWS Lambda, pilih fungsi Lambda dan kaitkan dengan topik Amazon SNS. Lihat Panduan Developer Amazon CloudWatch untuk informasi selengkapnya tentang menyiapkan alarm Amazon CloudWatch.
T: Bagaimana cara menggunakan fungsi AWS Lambda untuk merespons perubahan di data pengguna atau perangkat yang dikelola oleh Amazon Cognito?
Dari konsol AWS Lambda, Anda dapat memilih fungsi untuk dipicu ketika set data apa pun yang dikaitkan dengan kolam identitas Amazon Cognito disinkronkan. Fungsi yang sama ini juga tersedia melalui AWS SDK dan CLI. Kunjungi Amazon Cognito untuk mengetahui informasi lebih lanjut tentang menggunakan Amazon Cognito untuk berbagi dan menyinkronkan data di seluruh perangkat pengguna.
T: Bagaimana aplikasi saya dapat memicu fungsi AWS Lambda secara langsung?
Anda dapat memanggil fungsi Lambda menggunakan kejadian khusus melalui API panggilan AWS Lambda. Hanya pemilik fungsi atau akun AWS lain yang pemiliknya memberikan izin yang dapat memanggil fungsi tersebut. Kunjungi Panduan Developer Lambda untuk mempelajari selengkapnya.
T: Apa latensi dari pemanggilan fungsi AWS Lambda dalam merespons suatu kejadian?
T: Bagaimana cara membuat backend mobile menggunakan AWS Lambda?
Anda mengunggah kode yang diinginkan untuk dieksekusi oleh AWS Lambda kemudian memanggilnya dari aplikasi mobile Anda menggunakan AWS Lambda SDK yang disertakan dalam AWS Mobile SDK. Anda dapat membuat panggilan langsung (sinkronis) untuk mengambil atau memeriksa data secara waktu nyata maupun panggilan asinkronis. Anda juga dapat menentukan API khusus menggunakan Amazon API Gateway dan menjalankan fungsi Lambda Anda melalui klien yang kompatibel dengan REST. Untuk mempelajari selengkapnya tentang AWS Mobile SDK, kunjungi halaman AWS Mobile SDK. Untuk mempelajari selengkapnya tentang Amazon API Gateway, kunjungi halaman Amazon API Gateway.
T: Bagaimana cara memanggil fungsi AWS Lambda melalui HTTPS?
T: Bagaimana fungsi AWS Lambda saya dapat menyesuaikan perilakunya ke perangkat dan aplikasi yang membuat permintaan?
T: Bagaimana cara fungsi AWS Lambda saya mempersonalisasi perilakunya berdasarkan identitas pengguna akhir suatu aplikasi?
T: Bagaimana cara membuat keterampilan Alexa menggunakan AWS Lambda?
T: Apa yang terjadi jika fungsi saya gagal ketika memproses suatu kejadian?
Menggunakan AWS Lambda untuk membangun aplikasi
T: Apa itu aplikasi nirserver?
T: Bagaimana cara menerapkan dan mengelola aplikasi tanpa server?
T: Bagaimana saya dapat menemukan aplikasi nirserver lama yang dikembangkan komunitas AWS?
Anda dapat memilih dari kumpulan aplikasi nirserver yang dipublikasikan developer, perusahaan, dan partner di komunitas AWS dengan AWS Serverless Application Repository. Setelah menemukan aplikasi, Anda dapat mengonfigurasikan dan menerapkannya langsung dari konsol Lambda.
T: Bagaimana cara mengautomasikan penerapan untuk aplikasi nirserver?
Anda dapat mengautomasikan proses rilis aplikasi nirserver menggunakan AWS CodePipeline dan AWS CodeDeploy. CodePipeline adalah layanan pengiriman berkelanjutan yang memungkinkan Anda memodelkan, memvisualisasikan, dan mengautomasikan langkah-langkah yang diperlukan untuk merilis aplikasi nirserver. CodeDeploy memberikan mesin automasi deployment untuk aplikasi berbasis Lambda Anda. CodeDeploy memungkinkan Anda mengorkestrasi penerapan sesuai dengan metodologi praktik terbaik yang sudah ada seperti penerapan canary dan linier, serta membantu Anda menetapkan pagar pembatas yang diperlukan untuk memverifikasi bahwa kode yang baru digunakan itu aman, stabil, dan siap dirilis sepenuhnya untuk produksi.
Untuk mempelajari selengkapnya tentang CI/CD nirserver, kunjungi dokumentasi kami.
T: Bagaimana cara memulai membuat aplikasi tanpa server?
Untuk memulai, kunjungi konsol AWS Lambda dan unduh salah satu cetak biru kami. File yang Anda unduh akan berisi file AWS SAM (yang menentukan sumber daya AWS di aplikasi) dan file .ZIP (yang termasuk kode fungsi Anda). Anda kemudian dapat menggunakan perintah AWS CloudFormation untuk mengemas dan menerapkan aplikasi tanpa server yang baru saja diunduh. Untuk detail selengkapnya, kunjungi dokumentasi kami.
T: Bagaimana cara mengoordinasikan panggilan antara beberapa fungsi AWS Lambda?
Anda dapat menggunakan AWS Step Functions untuk mengoordinasikan rangkaian fungsi AWS Lambda dalam urutan tertentu. Anda dapat memanggil beberapa fungsi Lambda secara berurutan, meneruskan output satu ke yang lain, dan/atau secara paralel, dan Step Functions akan mempertahankan status selama eksekusi untuk Anda.
T: Bagaimana cara memecahkan masalah aplikasi tanpa server?
Anda dapat mengaktifkan fungsi Lambda untuk penelusuran menggunakan AWS X-Ray dengan menambahkan izin X-Ray ke peran eksekusi fungsi Lambda dan mengubah “mode penelusuran” fungsi Anda ke “aktif”. Ketika X-Ray diaktifkan untuk fungsi Lambda Anda, AWS Lambda akan memancarkan informasi penelusuran ke X-Ray mengenai biaya layanan Lambda yang timbul saat menjalankan fungsi Anda. Hal ini akan memberi Anda wawasan seperti biaya layanan Lambda, waktu inisiasi fungsi, dan waktu eksekusi fungsi. Selain itu, Anda dapat menyertakan SDK X-Ray dalam paket deployment Lambda. Dengan cara ini, Anda dapat membuat segmen jejak milik sendiri, membuat anotasi jejak, atau melihat segmen jejak untuk panggilan hilir yang dibuat dari fungsi Lambda Anda. SDK X-Ray saat ini tersedia untuk Node.js dan Java. Kunjungi Memecahkan masalah aplikasi berbasis Lambda untuk mempelajari selengkapnya. Tarif AWS X-Ray akan berlaku.
T. Dapatkah saya membangun aplikasi nirserver yang terhubung ke basis data relasional?
Ya. Anda dapat membangun aplikasi nirserver berbasis Lambda dengan skalabilitas tinggi dan aman yang terhubung ke basis data relasional menggunakan Proksi Amazon RDS, yaitu proksi basis data dengan ketersediaan tinggi yang mengelola ribuan koneksi bersamaan ke basis data relasional. Saat ini, RDS Proxy mendukung database MySQL dan Aurora. Anda dapat mulai menggunakan RDS Proxy melalui konsol Amazon RDS atau konsol AWS Lambda. Aplikasi nirserver yang menggunakan kolam koneksi terkelola penuh dari RDS Proxy akan ditagihkan sesuai dengan Harga RDS Proxy.
T: Bagaimana cara AWS SAM dilisensikan?
Spesifikasi ini bersumber terbuka di bawah Apache 2.0, yang memungkinkan Anda dan orang lain mengadopsi dan menggabungkan AWS SAM ke dalam alat pengembangan, deployment, pemantauan, dan pengelolaan dengan lisensi yang ramah komersial. Anda dapat mengakses repositori AWS SAM di GitHub di sini.
Dukungan gambar kontainer
T: Apa yang dimaksud dengan Dukungan Gambar Kontainer untuk AWS Lambda?
T: Bagaimana cara menggunakan Dukungan Gambar Kontainer untuk AWS Lambda?
T: Manakah tipe gambar kontainer yang didukung?
T: Apa gambar dasar yang bisa digunakan?
T: Apa alat kontainer yang dapat digunakan untuk mengemas dan men-deploy fungsi sebagai gambar kontainer?
T: Apa fitur AWS Lambda yang tersedia untuk fungsi yang di-deploy sebagai gambar kontainer?
T: Akankah AWS Lambda melakukan patch dan memperbarui gambar kontainer yang saya deploy?
T: Apa perbedaan antara fungsi yang dibuat menggunakan arsip ZIP dengan gambar kontainer?
Ada tiga perbedaan utama antara fungsi yang dibuat menggunakan arsip ZIP dengan gambar kontainer:
- Fungsi yang dibuat menggunakan arsip ZIP memiliki ukuran paket kode maksimum sebesar 250 MB saat dibuka dari zip, dan fungsi yang dibuat menggunakan gambar kontainer memiliki ukuran gambar maksimum 10 GB.
- Lambda menggunakan Amazon ECR sebagai penyimpanan kode dasar untuk fungsi yang ditentukan sebagai gambar kontainer, agar fungsi tidak dapat digunakan ketika gambar dasar dihapus dari ECR.
- Fungsi ZIP secara otomatis di-patch untuk keamanan runtime dan perbaikan bug terbaru. Fungsi yang ditentukan sebagai gambar kontainer tidak dapat diubah dan pelanggan bertanggung jawab atas komponen yang dikemas dalam fungsinya. Pelanggan dapat memanfaatkan gambar dasar yang disediakan AWS yang diperbarui secara berkala oleh AWS untuk keamanan dan perbaikan bug, menggunakan patch terbaru yang tersedia.
T: Apakah ada perbedaan performa antara fungsi yang ditentukan sebagai zip dan gambar kontainer?
T: Berapa biaya yang dikenakan untuk men-deploy fungsi Lambda sebagai gambar kontainer?
Tidak ada biaya tambahan untuk mengemas dan men-deploy fungsi sebagai gambar kontainer ke AWS Lambda. Saat memanggil fungsi yang di-deploy sebagai gambar kontainer, Anda membayar harga reguler untuk permintaan dan durasi eksekusi. Untuk mempelajari selengkapnya, kunjungi harga AWS Lambda. Anda akan dikenakan biaya atas penyimpanan gambar kontainer Anda di Amazon ECR dengan harga ECR standar. Untuk mempelajari selengkapnya, kunjungi harga Amazon ECR.
T: Apa yang dimaksud dengan Lambda Runtime Interface Emulator (RIE)?
Emulator Antarmuka Runtime Lambda adalah proksi untuk API Runtime Lambda yang memungkinkan pelanggan menguji secara lokal fungsi Lambda yang dikemas sebagai gambar kontainer. Ini adalah server web ringan yang mengonversi permintaan HTTP menjadi kejadian JSON dan meniru API Runtime Lambda. Server ini memungkinkan Anda menguji fungsi secara lokal menggunakan alat yang sudah dikenal seperti cURL dan Docker CLI (saat menguji fungsi yang dikemas sebagai gambar kontainer). Server ini juga menyederhanakan perjalanan aplikasi Anda pada layanan komputasi tambahan. Anda dapat menyertakan Lambda Runtime Interface Emulator dalam gambar kontainer agar menerima permintaan HTTP secara asli, bukan kejadian JSON yang diperlukan untuk deployment ke Lambda. Komponen ini tidak meniru orkestrator Lambda atau konfigurasi keamanan dan autentikasi. Runtime Interface Emulator adalah sumber terbuka di GitHub. Anda dapat memulai dengan mengunduh dan menginstalnya di mesin lokal Anda.
T: Mengapa diperlukan Emulator Antarmuka Runtime (RIE) Lambda selama pengujian lokal?
T: Apa perilaku fungsi yang dapat diuji secara lokal dengan emulator?
T: Bagaimana Runtime Interface Emulator (RIE) membantu menjalankan gambar yang kompatibel dengan Lambda pada layanan komputasi tambahan?
Pelanggan dapat menambahkan Runtime Interface Emulator sebagai titik entri ke gambar kontainer atau mengemasnya sebagai tambahan untuk memastikan gambar kontainer sekarang menerima permintaan HTTP, bukan kejadian JSON. Ini menyederhanakan perubahan yang diperlukan untuk menjalankan gambar kontainernya pada layanan komputasi tambahan. Pelanggan akan bertanggung jawab untuk memastikan mereka mengikuti semua praktik terbaik keamanan, performa, dan konkurensi untuk lingkungan pilihan mereka. RIE dikemas sebelumnya ke dalam gambar yang disediakan AWS Lambda, dan tersedia secara default di AWS SAM CLI. Penyedia gambar dasar dapat menggunakan dokumentasi untuk menyediakan pengalaman yang sama bagi gambar dasar mereka.
T: Bagaimana saya bisa men-deploy aplikasi dalam kontainer yang ada ke AWS Lambda?
Anda dapat men-deploy aplikasi dalam kontainer ke AWS Lambda jika memenuhi persyaratan berikut:
- Gambar kontainer harus mengimplementasikan API Runtime Lambda. Kami memiliki satu set paket perangkat lunak sumber terbuka, Runtime Interface Client (RIC), yang mengimplementasikan API Runtime Lambda, yang memungkinkan Anda memperluas gambar dasar pilihan Anda dengan mulus agar kompatibel dengan Lambda.
- Gambar kontainer harus bisa berjalan pada sistem file hanya baca. Kode fungsi Anda dapat mengakses penyimpanan direktori /tmp yang dapat ditulis sebesar 512 MB. Jika Anda menggunakan gambar yang memerlukan direktori root yang dapat ditulis, konfigurasikan untuk menulis ke direktori /tmp.
- File yang diperlukan untuk menjalankan kode fungsi dapat dibaca oleh pengguna Lambda default. Lambda menentukan pengguna Linux default dengan izin hak istimewa paling rendah yang mengikuti praktik terbaik keamanan. Anda perlu memverifikasi kode aplikasi Anda tidak tergantung pada file yang dibatasi oleh pengguna Linux lain agar dapat dijalankan.
- Ini adalah gambar kontainer berbasis Linux.
AWS Lambda Snapstart
T. Apa itu AWS Lambda SnapStart?
AWS Lambda SnapStart for Java menghasilkan performa startup fungsi hingga 10x lebih cepat. Untuk fungsi sesuai permintaan, fase inisialisasi (saat AWS Lambda memuat kode fungsi dan memulai dependensi eksternal) adalah kontributor terbesar untuk latensi startup, dan terjadi pada panggilan pertama. Dengan Lambda SnapStart, Lambda memulai kode satu kali fungsi inisialisasi sebelumnya saat Anda memublikasikan versi fungsi, bukan saat Anda pertama kali memanggil fungsi. Kemudian, Lambda mengambil snapshot dan melakukan caching memori serta status disk lingkungan pelaksanaan yang diinisialisasi. Saat Anda memanggil fungsi—dan saat skalanya dinaikkan—Lambda tidak menginiasialisasi fungsi dari awal, tetapi melanjutkan fungsi dari snapshot dalam cache.
T. Bagaimana cara mengonfigurasikan fungsi Lambda untuk menggunakan Lambda SnapStart?
Lambda SnapStart merupakan sebuah konfigurasi tingkat fungsi sederhana yang dapat dikonfigurasikan untuk fungsi Java lama maupun baru dengan menggunakan API Lambda, Konsol Manajemen AWS, AWS Command Line Interface (CLI), AWS SDK, AWS Cloud Development Kit (CDK), AWS CloudFormation, dan AWS Serverless Application Model (SAM). Saat Anda mengonfigurasi Lambda SnapStart, setiap fungsi versi yang dipublikasikan kemudian mendapatkan manfaat dari peningkatan performa startup yang ditawarkan oleh Lambda SnapStart. Untuk mempelajari selengkapnya tentang Lambda SnapStart, lihat dokumentasi.
T. Bagaimana cara memilih antara Lambda SnapStart dan Konkurensi yang Tersedia (PC)?
T. Manakah runtime yang didukung Lambda SnapStart?
Lambda SnapStart mendukung waktu proses Java 11. Versi Java mendatang akan didukung setelah dirilis. Untuk semua waktu proses yang didukung oleh Lambda, lihat dokumentasi waktu proses Lambda.
T. Dapatkah saya mengaktifkan Lambda SnapStart dan PC pada fungsi yang sama?
T. Dapatkah saya mengonfigurasikan fungsi Lambda SnapStart dengan cloud privat virtual (VPC)?
Ya. Anda dapat mengonfigurasikan fungsi Lambda SnapStart untuk mengakses sumber daya di cloud privat virtual (VPC). Untuk informasi selengkapnya mengenai cara mengonfigurasi fungsi dengan VPC, lihat dokumentasi Lambda.
T. Dapatkah saya mengonfigurasikan Lambda SnapStart di arsitektur x86 dan Arm?
T. Dapatkah saya mengaktifkan Lambda SnapStart dengan Amazon Elastic File System (EFS)?
T. Dapatkah saya mengaktifkan Lambda SnapStart dengan penyimpanan sementara (/tmp) lebih besar yang melebihi 512 MB?
T. Apakah proses caching dan melanjutkan dari snapshot memerlukan pertimbangan kompatibilitas perangkat lunak?
Ya. Jika kode Anda mengasumsikan keunikan status, Anda harus mengevaluasi ketahanan kode untuk operasi snapshot (seperti dikloning dan dilanjutkan). Untuk mempelajari selengkapnya mengenai pertimbangan keunikan Lambda SnapStart, lihat dokumentasi dan blog mengenai memahami keunikan dalam snapshot VM dengan Lambda SnapStart.
T. Dapatkah saya mengeksekusi kode saya sendiri sebelum snapshot dibuat atau saat fungsi dilanjutkan dari snapshot?
Ya. Anda dapat mengimplementasikan logika perangkat lunak Anda sendiri sebelum membuat (melakukan checkpoint) snapshot dan setelah memulihkan snapshot menggunakan kait waktu proses. Untuk mempelajari selengkapnya, lihat dokumentasi Lambda SnapStart.
T. Apakah saya akan dikenai biaya untuk Lambda SnapStart?
Tidak. Tidak ada biaya tambahan untuk mengaktifkan Lambda SnapStart. Anda dikenai biaya berdasarkan jumlah permintaan untuk fungsi dan durasi eksekusi kode berdasarkan Harga Lambda terbaru. Biaya durasi berlaku untuk kode yang dijalankan di handler fungsi dan kait waktu proses, serta kode inisialisasi yang dinyatakan di luar handler. Perhatikan bahwa AWS Lambda mungkin mendaur ulang lingkungan pelaksanaan secara periodik dengan patch keamanan dan menjalankan ulang kode inisialisasi Anda. Untuk detail selengkapnya, lihat dokumentasi Model Pemrograman Lambda.
T. Berapa lama snapshot untuk versi fungsi yang dipublikasikan tetap dalam cache dengan Lambda SnapStart?
T. Bagaimana cara mengenkripsi snapshot lingkungan pelaksanaan yang diinisialisasi buatan Lambda SnapStart?
Snapshot dienkripsi secara default dengan kunci AWS Key Management Service (KMS) yang unik untuk tiap pelanggan, yang dimiliki dan dikelola oleh layanan Lambda. Pelanggan juga dapat mengenskripsi snapshot menggunakan kunci KMS yang dimiliki dan dikelola oleh pelanggan.
T. Apakah ada batas waktu durasi inisialisasi kode dapat berjalan dengan Lambda SnapStart?
Konkurensi yang Disediakan
T: Apa itu AWS Lambda Provisioned Concurrency?
T: Bagaimana cara menyiapkan dan mengelola Konkurensi yang Tersedia?
Anda dapat mengonfigurasi konkurensi pada fungsi Anda melalui AWS Management Console, Lambda API, AWS CLI, dan AWS CloudFormation. Cara termudah mendapatkan manfaat dari Provisioned Concurrency adalah dengan menggunakan AWS Auto Scaling. Anda dapat menggunakan Application Auto Scaling untuk mengonfigurasi jadwal, atau meminta Auto Scaling untuk menyesuaikan level Provisioned Concurrency secara otomatis dalam real time sebagai perubahan permintaan. Untuk mempelajari selengkapnya tentang Konkurensi yang Tersedia, lihat dokumentasi.
T: Apakah saya perlu mengubah kode jika ingin menggunakan Konkurensi yang Tersedia?
T: Bagaimana perhitungan biaya Konkurensi yang Tersedia?
Provisioned Concurrency menambahkan pricing dimension, dari ‘Provisioned Concurrency’, agar fungsi selalu diinisialisasi. Bila diaktifkan, Anda membayar untuk jumlah konkurensi yang Anda konfigurasi dan untuk periode waktu selama Anda mengonfigurasinya. Ketika fungsi Anda dijalankan selagi Provisioned Concurrency dikonfigurasi di dalamnya, Anda juga membayar Permintaan dan Durasi eksekusi. Untuk mempelajari harga Konkurensi yang Tersedia selengkapnya, lihat Harga AWS Lambda.
T: Kapan sebaiknya saya menggunakan Konkurensi yang Tersedia?
T: Apa yang terjadi jika fungsi menerima invokasi di atas level Konkurensi yang Tersedia yang telah dikonfigurasi?
Fungsi AWS Lambda didukung oleh prosesor Graviton2
T: Apa fungsi AWS Lambda yang didukung oleh prosesor Graviton2?
T: Mengapa saya harus menggunakan fungsi AWS Lambda yang didukung oleh prosesor Graviton2?
T: Bagaimana cara mengonfigurasi fungsi saya untuk berjalan di prosesor Graviton2?
T: Bagaimana cara men-deploy aplikasi saya yang dibangun menggunakan fungsi yang didukung oleh prosesor Graviton2?
T: Dapatkah aplikasi menggunakan kedua fungsi yang didukung oleh prosesor Graviton2 maupun prosesor x86?
T: Apakah saya memerlukan mesin pengembangan berbasis Arm untuk membuat, membangun, dan menguji fungsi yang didukung oleh prosesor Graviton2 secara lokal?
Bahasa yang ditafsirkan seperti Python, Java, dan Node umumnya tidak memerlukan kompilasi ulang kecuali kode Anda mereferensikan pustaka yang menggunakan komponen khusus arsitektur. Dalam kasus tersebut, Anda perlu menyediakan pustaka yang ditargetkan ke arm64. Untuk detail selengkapnya, lihat halaman Mulai menggunakan AWS Graviton. Bahasa yang tidak ditafsirkan akan memerlukan kompilasi kode Anda untuk menargetkan arm64. Sementara kompiler yang lebih modern akan menghasilkan kode yang dikompilasi untuk arm64, Anda perlu men-deploy-nya ke lingkungan berbasis arm untuk menguji. Untuk mempelajari selengkapnya tentang penggunaan fungsi Lambda dengan Graviton2, lihat dokumentasi.
T: Apakah AWS Lambda mendukung citra kontainer multi-arsitektur?
T: Dapatkah saya membuat Lapisan AWS Lambda yang menargetkan fungsi yang didukung oleh prosesor AWS Graviton2?
T: Bahasa dan runtime apa yang didukung oleh fungsi Lambda yang berjalan pada prosesor Graviton2?
Saat peluncuran, pelanggan dapat menggunakan citra Python, Node.js, Java, Ruby, .Net Core, Custom Runtime (provided.al2), dan OCI Base. Untuk mempelajari selengkapnya, lihat Runtime AWS Lambda.
T: Berapa harga fungsi AWS Lambda yang didukung oleh prosesor AWS Graviton2? Apakah tingkat gratis AWS Lambda berlaku untuk fungsi yang didukung oleh Graviton2?
T: Bagaimana cara saya memilih antara menjalankan fungsi saya pada prosesor Graviton2 atau prosesor x86?
Setiap beban kerja bersifat unik dan kami menyarankan pelanggan menguji fungsi mereka untuk menentukan peningkatan performa harga yang mungkin mereka lihat. Untuk melakukan hal ini sebaiknya gunakan alat AWS Lambda Power Tuning. Sebaiknya mulai dengan backend web dan seluler, data, dan pemrosesan aliran saat menguji beban kerja Anda untuk peningkatan performa harga yang potensial.
Amazon EFS untuk AWS Lambda
T: Apa yang dimaksud Amazon EFS untuk AWS Lambda?
T: Bagaimana cara menyiapkan Amazon EFS untuk Lambda?
Developer dapat dengan mudah menghubungkan sistem file EFS yang ada ke fungsi Lambda melalui Titik Akses EFS menggunakan konsol, CLI, atau SDK. Ketika fungsi dipanggil pertama kali, sistem file akan dipasang secara otomatis dan disediakan untuk kode fungsi. Anda dapat mempelajari selengkapnya di dokumentasi.
T: Apakah saya perlu mengonfigurasi fungsi dengan pengaturan VPC sebelum dapat menggunakan sistem file Amazon EFS?
T: Siapa yang sebaiknya menggunakan Amazon EFS untuk Lambda?
T: Apakah data saya akan dienkripsi dalam transit?
T: Apakah data saya dienkripsi saat istirahat?
T: Bagaimana saya akan dikenakan biaya untuk Amazon EFS untuk AWS Lambda?
Tidak ada biaya tambahan untuk menggunakan Amazon EFS untuk AWS Lambda. Pelanggan membayar harga standar untuk AWS Lambda dan untuk Amazon EFS. Saat menggunakan Lambda dan EFS dalam availability zone yang sama, pelanggan tidak dikenakan biaya untuk transfer data. Namun, jika mereka menggunakan peering VPC untuk akses Lintas Akun, akan menimbulkan biaya transfer data. Untuk mempelajari selengkapnya, lihat Harga.
T: Dapatkah saya menghubungkan lebih dari satu sistem file Amazon EFS dengan fungsi AWS Lambda saya?
T: Dapatkah saya menggunakan sistem file Amazon EFS yang sama di beberapa fungsi, kontainer, dan instans?
URL Fungsi Lambda
T: Apakah fungsi AWS Lambda mendukung titik akhir HTTP(S)?
T: Bagaimana cara mengonfigurasi URL fungsi Lambda untuk fungsi saya?
Anda dapat mengonfigurasi URL fungsi untuk fungsi Anda melalui Konsol Manajemen AWS, API AWS Lambda, AWS CLI, AWS CloudFormation, dan AWS Serverless Application Model. URL Fungsi bisa diaktifkan pada versi fungsi Anda yang tidak memenuhi syarat $LATEST, atau pada alias fungsi apa pun. Untuk mempelajari selengkapnya tentang mengonfigurasi URL fungsi, lihat dokumentasi.
T: Bagaimana cara mengamankan URL fungsi Lambda saya?
T: Bagaimana cara memanggil fungsi saya dengan URL fungsi Lambda?
T: Apakah URL fungsi Lambda bisa digunakan dengan versi fungsi dan alias?
Ya. URL fungsi Lambda dapat diaktifkan pada fungsi atau alias fungsi. Jika tidak ada alias yang ditentukan, URL akan merujuk ke $LATEST secara default. URL Fungsi tidak dapat menargetkan versi fungsi individual.
T: Dapatkah saya mengaktifkan domain kustom untuk URL fungsi Lambda saya?
T: Dapatkah URL fungsi Lambda digunakan untuk memanggil fungsi di VPC?
T: Berapa harga untuk menggunakan URL fungsi Lambda?
Tidak ada biaya tambahan yang dikenakan untuk menggunakan URL fungsi. Anda akan membayar harga standar AWS Lambda. Untuk mempelajari selengkapnya, lihat Harga AWS Lambda.
Lambda@Edge
T: Apa itu Lambda@Edge?
Lambda@Edge memungkinkan Anda menjalankan kode di lokasi AWS secara global tanpa menyediakan atau mengelola server untuk merespons pengguna akhir dengan latensi jaringan terendah. Anda cukup mengunggah kode Node.js atau Python ke AWS Lambda dan mengonfigurasi fungsi untuk dipicu sebagai respons terhadap permintaan Amazon CloudFront (yaitu ketika permintaan penampil tiba, ketika permintaan diteruskan ke atau diterima kembali dari asalnya, dan tepat sebelum merespons kembali ke pengguna akhir). Kode ini kemudian siap untuk dieksekusi di lokasi AWS secara global ketika permintaan untuk konten diterima, kemudian menskalakan dengan volume permintaan CloudFront secara global. Pelajari lebih lanjut di dokumentasi kami.
T: Bagaimana cara menggunakan Lambda@Edge?
Untuk menggunakan Lambda@Edge, Anda cukup mengunggah kode ke AWS Lambda dan mengaitkan versi fungsi untuk dipicu sebagai respons permintaan Amazon CloudFront. Kode harus memenuhi service limits Lambda@Edge. Lambda@Edge mendukung Node.js dan Python untuk permintaan global oleh kejadian CloudFront pada saat ini. Pelajari lebih lanjut di dokumentasi kami.
T: Kapan saya harus menggunakan Lambda@Edge?
Lambda@Edge dioptimalkan untuk kasus penggunaan latensi sensitif di mana pengguna akhir Anda didistribusikan secara global. Semua informasi yang Anda perlukan untuk membuat keputusan seharusnya tersedia di edge CloudFront, dalam fungsi dan permintaan. Hal ini berarti bahwa kasus penggunaan ketika Anda ingin membuat keputusan tentang cara menyajikan konten berdasarkan karakteristik pengguna (misalnya lokasi, perangkat klien, dll.) sekarang dapat dijalankan dan disajikan dekat dengan pengguna Anda tanpa harus dirutekan kembali ke pusat server.
T: Dapatkah saya menerapkan fungsi Lambda yang sudah ada untuk permintaan global?
Anda dapat mengaitkan fungsi Lambda yang sudah ada dengan kejadian CloudFront untuk permintaan global jika fungsi tersebut memenuhi persyaratan dan batasan layanan Lambda@Edge. Baca selengkapnya di sini cara memperbarui properti fungsi Anda.
T: Apakah kejadian Amazon CloudFront dapat digunakan untuk memicu fungsi saya?
Fungsi Anda akan secara otomatis memicu respons terhadap peristiwa Amazon CloudFront berikut:
- Permintaan Pengguna – Kejadian ini terjadi ketika pengguna akhir atau perangkat di Internet membuat permintaan HTTP(S) ke CloudFront, dan permintaan tersebut tiba di lokasi edge yang paling dekat dengan pengguna tersebut.
- Tanggapan Pengguna – Kejadian ini terjadi ketika server CloudFront di edge siap untuk merespons pengguna akhir atau perangkat yang membuat permintaan.
- Permintaan Asal – Peristiwa ini terjadi ketika server edge CloudFront belum memiliki objek yang diminta dalam cache-nya, dan permintaan pelanggan siap dikirim ke server web asal backend Anda (misalnya Amazon EC2, atau Application Load Balancer, atau Amazon S3).
- Respons Asal – Peristiwa ini terjadi ketika server CloudFront di edge menerima respons dari server web asal backend Anda.
T: Apa yang berbeda dari AWS Lambda@Edge dibandingkan menggunakan AWS Lambda di belakang Amazon API Gateway?
Perbedaanya adalah bahwa API Gateway dan Lambda adalah layanan regional. Lambda@Edge dan Amazon CloudFront memungkinkan Anda mengeksekusi logika di beberapa lokasi AWS berdasarkan lokasi penampil akhir Anda.
Skalabilitas dan ketersediaan
T: Bagaimana ketersediaan fungsi AWS Lambda?
T: Apakah fungsi AWS Lambda saya akan tetap tersedia ketika saya mengubah kode atau konfigurasinya?
T: Adakah batasan untuk jumlah fungsi AWS Lambda yang dapat saya jalankan sekaligus?
Tidak. AWS Lambda didesain untuk menjalankan banyak instans fungsi Anda secara paralel. Namun, AWS Lambda memiliki pembatas keamanan default, untuk sejumlah eksekusi bersamaan per akun per wilayah (kunjungi di sini untuk info tentang batas pembatas keamanan default). Anda juga dapat mengontrol eksekusi bersamaan maksimum untuk masing-masing fungsi AWS Lambda, yang dapat Anda gunakan untuk mencadangkan subset dari batas konkurensi akun Anda untuk fungsi-fungsi penting, atau membatasi tingkat lalu lintas ke sumber daya hilir.
Jika Anda ingin mengirimkan permintaan untuk meningkatkan batas eksekusi bersamaan, Anda dapat menggunakan Kuota Layanan untuk meminta peningkatan batas.
T: Apa yang terjadi jika akun saya melebihi batasan default saat eksekusi bersamaan?
Jika melebihi batas eksekusi bersamaan maksimum, fungsi AWS Lambda yang diinvokasi secara sinkronis akan mengembalikan kesalahan throttling (kode kesalahan 429). Fungsi Lambda yang diinvokasi secara asinkronis dapat menyerap lonjakan lalu lintas yang wajar selama sekitar 15-30 menit, setelah itu peristiwa yang masuk akan ditolak karena dibatasi. Jika fungsi Lambda sedang dipanggil sebagai respons atas kejadian Amazon S3, kejadian yang ditolak oleh AWS Lambda dapat disimpan dan dicoba kembali oleh S3 selama 24 jam. Kejadian dari Amazon Kinesis Streams dan Amazon DynamoDB Streams dicoba ulang hingga fungsi Lambda berhasil atau data kedaluwarsa. Amazon Kinesis dan Amazon DynamoDB Streams mempertahankan data selama 24 jam.
T: Apakah batas eksekusi bersamaan maksimum default diterapkan pada tingkat per fungsi?
Batas eksekusi bersamaan maksimum default diterapkan pada tingkat akun. Namun, Anda juga dapat menetapkan batas pada masing-masing fungsi (kunjungi di sini untuk info tentang Konkurensi Terpesan).
T. Bagaimana kecepatan penskalaan fungsi AWS Lambda saya?
Setiap fungsi Lambda yang diinvokasi secara sinkronis dapat menskalakan hingga 1.000 eksekusi bersamaan setiap 10 detik. Sementara tingkat penskalaan Lambda cocok untuk sebagian besar kasus penggunaan, Lambda sangat ideal bagi mereka yang memiliki lonjakan lalu lintas yang dapat diprediksi atau tidak dapat diprediksi. Misalnya, pemrosesan data terikat SLA akan membutuhkan penskalaan yang dapat diprediksi namun cepat untuk memenuhi permintaan pemrosesan. Demikian pula, menyajikan artikel berita terbaru, atau penjualan kilat dapat mendorong tingkat lalu lintas yang tidak dapat diprediksi dalam waktu singkat. Tingkat penskalaan Lambda dapat memfasilitasi kasus penggunaan tanpa konfigurasi atau alat tambahan. Selain itu, batas penskalaan konkurensi adalah batas tingkat fungsi, yang berarti setiap fungsi di akun Anda diskalakan secara independen dari fungsi lainnya.
T: Apa yang terjadi jika fungsi Lambda saya gagal saat memproses suatu peristiwa?
T: Sumber daya apa yang dapat saya konfigurasi sebagai antrean dead letter untuk fungsi Lambda?
T: Apa yang terjadi jika pemanggilan fungsi Lambda saya melemahkan kebijakan yang tersedia?
Jika melebihi kebijakan coba lagi untuk permintaan asinkronis, Anda dapat mengonfigurasi “dead letter queue” (DLQ) ke tempat kejadian akan diletakkan; dengan tidak adanya DLQ yang dikonfigurasi, kejadian tersebut dapat ditolak. Jika kebijakan percobaan ulang untuk invokasi berbasis aliran terlampaui, data akan kedaluwarsa dan karenanya ditolak.
Keamanan dan kontrol akses
T: Bagaimana cara mengizinkan fungsi AWS Lambda saya untuk mengakses sumber daya AWS lainnya?
Anda memberikan izin untuk fungsi Lambda guna mengakses sumber daya lain menggunakan IAM role AWS Lambda mengasumsikan peran saat mengeksekusi fungsi Lambda Anda, jadi Anda selalu me-retain kontrol penuh dan aman dari sumber daya AWS yang tepat yang dapat digunakan. Kunjungi Menyiapkan AWS Lambda untuk mempelajari selengkapnya tentang peran.
T: Bagaimana cara mengontrol bucket Amazon S3 yang dapat memanggil fungsi AWS Lambda?
Ketika Anda mengonfigurasi bucket Amazon S3 untuk mengirim pesan ke fungsi AWS Lambda, aturan kebijakan sumber daya yang memberikan akses akan dibuat. Kunjungi Panduan Developer Lambda untuk mempelajari selengkapnya tentang kebijakan sumber daya dan kontrol akses untuk fungsi Lambda.
T; Bagaimana cara mengontrol tabel Amazon DynamoDB atau aliran Amazon Kinesis yang dapat dipilih oleh fungsi AWS Lambda?
Kontrol akses dikelola melalui peran fungsi Lambda. Peran yang Anda berikan untuk fungsi Lambda juga menentukan sumber daya mana yang dapat diminta oleh AWS Lambda untuk dirinya sendiri. Kunjungi Panduan Developer Lambda untuk mempelajari selengkapnya.
T; Bagaimana cara mengontrol antrean Amazon SQS yang dapat dipilih oleh fungsi AWS Lambda?
T: Bagaimana cara mengakses sumber daya di Amazon VPC dari fungsi AWS Lambda saya?
Anda dapat mengaktifkan fungsi Lambda untuk mengakses sumber daya di VPC Anda dengan menentukan subnet dan grup keamanan sebagai bagian dari konfigurasi fungsi Anda. Fungsi Lambda yang dikonfigurasi untuk mengakses sumber daya di VPC tertentu tidak akan memiliki akses ke internet sebagai konfigurasi default. Untuk memberikan internet ke fungsi-fungsi ini, gunakan gateway internet. Secara default, fungsi Lambda berkomunikasi dengan sumber daya dalam VPC dual-stack melalui IPv4. Anda dapat mengonfigurasi fungsi Anda untuk mengakses sumber daya dalam VPC dual-stack melalui IPv6. Untuk detail selengkapnya mengenai fungsi Lambda yang dikonfigurasikan dengan VPC, lihat Jaringan Privat Lambda dengan VPC.
T: Apa yang dimaksud dengan Penandatanganan Kode untuk AWS Lambda?
Penandatanganan Kode untuk AWS Lambda menawarkan kontrol kepercayaan dan integritas yang memungkinkan Anda memverifikasi bahwa hanya kode yang tidak diubah dari developer yang disetujui yang diterapkan di fungsi Lambda. Anda dapat menggunakan AWS Signer, layanan penandatanganan kode yang terkelola penuh, untuk menandatangani artefak kode secara digital dan mengonfigurasi fungsi Lambda guna memverifikasi tanda tangan saat deployment. Penandatanganan Kode untuk AWS Lambda saat ini hanya tersedia untuk fungsi yang dikemas sebagai arsip ZIP.
T: Bagaimana cara membuat artefak kode yang ditandatangani secara digital?
Anda dapat membuat artefak kode yang ditandatangani secara digital menggunakan Profil Penandatanganan melalui konsol AWS Signer, Signer API, SAM CLI, atau AWS CLI. Untuk mempelajari selengkapnya, baca dokumentasi untuk AWS Signer.
T: Bagaimana cara mengonfigurasi fungsi Lambda untuk mengaktifkan penandatanganan kode?
T: Apa pemeriksaan tanda tangan yang dijalankan AWS Lambda saat deployment?
AWS Lambda dapat menjalankan pemeriksaan tanda tangan berikut saat penerapan:
• Tanda tangan rusak - Ini terjadi jika artefak kode telah diubah sejak penandatanganan.
• Tanda tangan tidak cocok - Ini terjadi jika artefak kode ditandatangani oleh profil penandatanganan yang tidak disetujui.
• Tanda tangan kedaluwarsa - Ini terjadi jika tanda tangan melebihi tanggal berakhir yang dikonfigurasi.
• Tanda tangan yang dibatalkan - Ini terjadi jika pemilik profil penandatanganan membatalkan tugas penandatanganan.
Untuk mempelajari selengkapnya, lihat dokumentasi AWS Lambda.
T: Bisakah saya mengaktifkan penandatanganan kode untuk fungsi yang ada?
T: Apakah ada biaya tambahan untuk menggunakan Penandatanganan Kode untuk AWS Lambda?
Tidak ada biaya tambahan saat menggunakan Penandatanganan Kode untuk AWS Lambda. Anda membayar harga standar untuk AWS Lambda. Untuk mempelajari selengkapnya, lihat Harga.
Kontrol pencatatan lanjutan
T: Kontrol pencatatan lanjutan apa yang didukung di Lambda?
Untuk memberi Anda pengalaman pencatatan yang disederhanakan dan ditingkatkan secara default, AWS Lambda menawarkan kontrol pencatatan lanjutan seperti kemampuan untuk menangkap log fungsi Lambda secara native dalam format terstruktur JSON, mengontrol pemfilteran tingkat log dari log fungsi Lambda tanpa membuat perubahan kode apa pun, serta menyesuaikan grup log Amazon CloudWatch yang dikirimkan Lambda ke log.
T: Kontrol pencatatan lanjutan dapat digunakan untuk apa saja?
Anda dapat menangkap log fungsi Lambda dalam format terstruktur JSON tanpa harus menggunakan pustaka pencatatan Anda sendiri. Log terstruktur JSON memudahkan pencarian, pemfilteran, dan analisis entri log dengan volume besar. Anda dapat mengontrol pemfilteran tingkat log dari log fungsi Lambda tanpa membuat perubahan kode apa pun, yang memungkinkan Anda memilih tingkat perincian pencatatan yang diperlukan untuk fungsi Lambda tanpa menyaring log bervolume besar saat melakukan debug dan memecahkan masalah kesalahan. Anda juga dapat mengatur ke grup log Amazon CloudWatch mana Lambda mengirimkan log, sehingga memudahkan dalam mengagregasi log dari beberapa fungsi dalam aplikasi di satu tempat. Anda kemudian dapat menerapkan kebijakan keamanan, tata kelola, dan retensi ke log di tingkat aplikasi alih-alih secara individual untuk setiap fungsi.
T. Bagaimana cara menggunakan kontrol pencatatan lanjutan?
Anda dapat menentukan kontrol pencatatan lanjutan untuk fungsi Lambda menggunakan API AWS Lambda, konsol AWS Lambda, AWS CLI, AWS Serverless Application Model (SAM), dan AWS CloudFormation. Untuk mempelajari selengkapnya, kunjungi postingan blog peluncuran untuk kontrol pencatatan lanjutan atau Panduan Developer Lambda.
T. Dapatkah saya menggunakan pustaka pencatatan milik saya sendiri guna menghasilkan log terstruktur JSON untuk fungsi Lambda saya?
Ya, Anda dapat menggunakan pustaka pencatatan Anda sendiri untuk menghasilkan log Lambda dalam format terstruktur JSON. Untuk memastikan pustaka pencatatan Anda bekerja secara lancar dengan kemampuan pencatatan terstruktur JSON asli Lambda, Lambda tidak akan melakukan enkode ulang setiap log yang dihasilkan oleh fungsi yang sudah dikodekan JSON. Anda juga dapat menggunakan pustaka Powertools for AWS Lambda untuk menangkap log Lambda dalam format terstruktur JSON.
T. Bagaimana biaya penggunaan kontrol pencatatan lanjutan?
Tidak ada biaya tambahan untuk penggunaan kontrol pencatatan lanjutan di Lambda. Anda akan terus dikenai biaya untuk penyerapan dan penyimpanan log Lambda oleh Log Amazon CloudWatch. Lihat halaman harga CloudWatch untuk detail harga log.
Fungsi AWS Lambda di Java
T: Bagaimana cara mengompilasi kode Java fungsi AWS Lambda saya?
Anda dapat menggunakan alat standar seperti Maven atau Gradle untuk mengompilasi fungsi Lambda Anda. Proses build harus meniru proses build yang sama yang akan Anda gunakan untuk mengompilasi kode Java apa pun yang bergantung pada AWS SDK. Jalankan alat pengompilasi Java Anda pada file sumber Anda dan sertakan AWS SDK 1.9 atau yang lebih baru dengan dependensi transitif pada classpath Anda. Untuk detail selengkapnya, lihat dokumentasi kami.
T: Apa saja lingkungan JVM yang digunakan Lambda untuk menjalankan fungsi saya?
Fungsi AWS Lambda di Node.js
T: Dapatkah saya menggunakan paket dengan AWS Lambda?
Ya. Anda dapat menggunakan paket NPM dan juga paket khusus. Pelajari selengkapnya di sini.
T: Dapatkah saya menjalankan program lain dari dalam fungsi AWS Lambda saya yang tertulis di Node.js?
Ya. Sandbox bawaan Lambda memungkinkan Anda menjalankan skrip batch (“shell”), runtime bahasa lainnya, rutinitas utilitas, dan eksekusi. Pelajari selengkapnya di sini.
T: Apakah memungkinkan untuk menggunakan modul asli dengan fungsi AWS Lambda yang tertulis di Node.js?
Ya. Setiap modul asli yang terhubung secara statis dapat dimasukkan dalam file ZIP yang Anda unggah, serta modul-modul yang terhubung secara dinamis yang dikompilasi dengan rpath yang menunjuk ke direktori akar fungsi Lambda Anda. Pelajari selengkapnya di sini.
T: Dapatkah saya mengeksekusi biner dengan AWS Lambda yang tertulis di Node.js?
Ya. Anda dapat menggunakan perintah child_process Node.js untuk mengeksekusi biner yang telah dimasukkan ke dalam fungsi atau eksekusi apa pun dari Amazon Linux yang terlihat oleh fungsi Anda. Atau beberapa paket NPM ada yang mengemas baris perintah biner seperti node-ffmpeg. Pelajari selengkapnya di sini.
T: Bagaimana cara menerapkan kode fungsi AWS Lambda yang tertulis di Node.js?
Untuk menerapkan fungsi Lambda yang tertulis di Node.js, cukup kemas kode Javascript dan pustaka dependen Anda sebagai ZIP. Anda dapat mengunggah ZIP dari lingkungan lokal, atau menentukan lokasi Amazon S3 tempat file ZIP berada. Untuk detail selengkapnya, lihat dokumentasi kami.
Fungsi AWS Lambda di Python
T: Dapatkah saya menggunakan paket Python dengan AWS Lambda?
Fungsi AWS Lambda di C#
T: Bagaimana cara mengemas dan menerapkan fungsi AWS Lambda di C#?
Fungsi AWS Lambda di PowerShell
T: Bagaimana cara menerapkan kode fungsi AWS Lambda yang tertulis dalam PowerShell?
Paket deployment PowerShell Lambda adalah file ZIP yang berisi skrip PowerShell Anda, modul PowerShell yang diperlukan untuk skrip PowerShell Anda, dan perakitan yang diperlukan untuk menghosting PowerShell Core. Kemudian Anda menggunakan modul AWSLambdaPSCore PowerShell yang dapat Anda instal dari PowerShell Gallery untuk membuat paket deployment PowerShell Lambda Anda.
Fungsi AWS Lambda di Go
T: Bagaimana cara mengemas dan melakukan deployment fungsi AWS Lambda di Go?
Unggah artefak Go Anda yang dapat dijalankan sebagai file ZIP melalui AWS CLI atau konsol Lambda dan pilih runtime go1.x. Dengan Lambda, Anda dapat menggunakan peralatan asli Go untuk membuat dan mengemas kode Anda. Untuk detail lebih lanjut, baca dokumentasi kami.
Fungsi AWS Lambda dalam Ruby
T: Bagaimana cara melakukan deployment kode fungsi AWS Lambda yang ditulis di Ruby?
Topik lainnya
T: Mana saja versi Amazon Linux, Node.js, Python, JDK, .NET Core, SDK, dan pustaka tambahan yang didukung AWS Lambda?
Anda dapat melihat daftar versi yang didukung di sini.
T: Dapatkah saya mengubah versi Amazon Linux atau runtime bahasa apa pun?
Tidak. AWS Lambda menawarkan versi tunggal sistem operasi dan runtime bahasa terkelola ke semua pengguna layanan. Anda dapat membawa runtime bahasa Anda sendiri untuk digunakan di Lambda.
T: Bagaimana saya dapat merekam dan mengaudit panggilan yang dilakukan ke API AWS Lambda?
T: Bagaimana cara mengoordinasikan panggilan antara beberapa fungsi Lambda?
Anda dapat menggunakan Amazon Step Functions untuk mengoordinasikan beberapa fungsi Lambda. Anda dapat memanggil beberapa fungsi Lambda secara berangkai, meneruskan output dari satu ke yang lain, atau secara paralel. Baca dokumentasi kami untuk detail selengkapnya.