Umum

T: Apa itu AWS Lambda?

AWS Lambda memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. Anda membayar hanya untuk waktu komputasi yang digunakan – tidak dikenai biaya ketika kode Anda tidak berjalan. Dengan Lambda, Anda dapat menjalankan kode hampir untuk semua jenis aplikasi atau layanan backend – semua tanpa administrasi. Cukup unggah kode Anda dan Lambda menangani segala yang diperlukan untuk menjalankan dan menskalakan kode Anda dengan ketersediaan yang sangat baik. Anda dapat mengatur kode untuk secara otomatis memicu dari layanan AWS lainnya atau memanggilnya secara langsung dari web atau aplikasi ponsel.

T: Apa itu komputasi tanpa server?

Komputasi tanpa server memungkinkan Anda membuat dan 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: Kejadian apa yang dapat memicu fungsi AWS Lambda?

Silakan lihat dokumentasi kami untuk daftar lengkap sumber kejadian.

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 macam jenis instans dan opsi untuk menyesuaikan pengaturan sistem operasi, jaringan dan keamanan, serta seluruh tumpukan perangkat lunak, memungkinkan Anda memindahkan aplikasi yang ada ke cloud dengan mudah. 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 menerapkan dan menskalakan aplikasi web di mana Anda me-retain kepemilikan dan kontrol penuh atas instans EC2 yang mendasarinya. Amazon EC2 Container Service adalah layanan pengelolaan yang dapat diskalakan yang mendukung kontainer Docker dan memungkinkan Anda untuk 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: Jenis kode apa yang dapat berjalan pada AWS Lambda?

AWS Lambda menawarkan cara yang mudah untuk menyelesaikan banyak aktivitas di cloud. Contohnya, Anda dapat menggunakan AWS Lambda untuk membangun back-end mobile yang mengambil dan mengubah data dari Amazon DynamoDB, penangan yang mengompresi atau mengubah objek saat diunggah ke Amazon S3, mengaudit dan melaporkan panggilan API yang dilakukan ke Amazon Web Service apa pun, dan pemrosesan data streaming tanpa server menggunakan Amazon Kinesis.

T: Bahasa apa 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?

Tidak. AWS Lambda mengoperasikan infrastruktur komputasi atas nama Anda, memungkinkannya melakukan pemeriksaan kesehatan, menerapkan patch keamanan, dan melakukan perawatan rutin lainnya.

T: Bagaimana AWS Lambda mengisolasi kode saya?

Setiap fungsi AWS Lambda berjalan di lingkungannya sendiri yang terisolasi, dengan sumber daya dan tampilan sistem filenya sendiri. AWS Lambda menggunakan teknik yang sama dengan Amazon EC2 untuk memberikan keamanan dan pemisahan di tingkat infrastruktur dan eksekusi.

T: Bagaimana AWS Lambda mengamankan kode saya?

AWS Lambda menyimpan kode di Amazon S3 dan mengenkripsinya saat istirahat. AWS Lambda melakukan pemeriksaan integritas tambahan saat kode Anda sedang digunakan.

T: Wilayah AWS mana yang tersedia untuk AWS Lambda?

Silakan merujuk ke Tabel Wilayah Infrastruktur Global AWS.

Fungsi AWS Lambda

T: Apa itu fungsi AWS Lambda?

Kode yang Anda jalankan pada AWS Lambda diunggah sebagai “fungsi Lambda”. Setiap fungsi memiliki informasi konfigurasi yang terkait, seperti nama, deskripsi, titik masuk, dan persyaratan sumber daya. Kode tersebut harus ditulis dalam gaya “stateless”, yaitu harus diasumsikan tidak ada kesamaan dengan infrastruktur komputasi yang mendasarinya. Akses sistem berkas lokal, proses turunan, dan artefak yang serupa tidak boleh melampaui masa permintaan, dan tiap status persisten harus disimpan di Amazon S3, Amazon DynamoDB, Amazon EFS, atau layanan penyimpanan lain yang tersedia di Internet. Fungsi Lambda dapat mencakup pustaka yang sudah ada, bahkan yang asli.

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?

Anda dapat mengonfigurasi setiap fungsi Lambda dengan penyimpanan sementara miliknya sendiri antara 512MB hingga 10.240MB, dalam kenaikan 1MB dengan menggunakan konsol AWS Lambda, API AWS Lambda, atau templat AWS CloudFormation selama pembuatan atau pembaruan fungsi.

T: Apakah penyimpanan sementara AWS Lambda terenkripsi?

Ya. Semua data yang tersimpan di penyimpanan sementara terenkripsi at rest dengan kunci yang dikelola oleh AWS.

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?

Anda dapat mengonfigurasi setiap fungsi Lambda dengan penyimpanan sementara miliknya sendiri antara 512MB hingga 10.240MB, dalam kenaikan 1MB dengan menggunakan konsol AWS Lambda, API AWS Lambda, atau templat AWS CloudFormation selama pembuatan atau pembaruan fungsi.

T: Apakah penyimpanan sementara AWS Lambda terenkripsi?

Ya. Semua data yang tersimpan di penyimpanan sementara terenkripsi at rest dengan kunci yang dikelola oleh AWS.

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?

Menjaga fungsi stateless memungkinkan AWS Lambda meluncurkan dengan cepat sebanyak mungkin salinan fungsi sebagaimana diperlukan untuk menskalakan ke tingkat kejadian yang masuk. Meskipun model pemrograman AWS Lambda stateless, kode Anda dapat mengakses data stateful dengan memanggil layanan web lain, seperti Amazon S3 atau Amazon DynamoDB.

T: Dapatkah saya menggunakan utas dan proses dalam kode fungsi AWS Lambda saya?

Ya. AWS Lambda memungkinkan Anda menggunakan fitur bahasa dan sistem pengoperasian yang normal, seperti membuat utas dan proses tambahan. Sumber daya yang dialokasikan untuk fungsi Lambda, termasuk memori, waktu eksekusi, disk, dan penggunaan jaringan, harus dibagi di antara semua utas/proses yang digunakannya. Anda dapat meluncurkan proses menggunakan bahasa yang didukung oleh Amazon Linux.

T: Batasan apa yang berlaku untuk kode fungsi AWS Lambda?

Lambda mencoba mengenakan pembatasan sesedikit mungkin pada aktivitas bahasa dan sistem pengoperasian yang normal, tetapi ada beberapa aktivitas yang dinonaktifkan: Koneksi jaringan masuk diblokir oleh AWS Lambda, dan untuk koneksi keluar hanya soket TCP/IP dan UDP/IP yang didukung, dan panggilan sistem ptrace (debugging) diblokir. Lalu lintas TCP port 25 juga diblokir sebagai langkah anti-spam.

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 di variabel lingkungan?

Untuk informasi sensitif, seperti kata sandi database, kami merekomendasikan Anda menggunakan enkripsi di sisi klien menggunakan AWS Key Management Service dan menyimpan nilai yang dihasilkan sebagai teks tersandi (ciphertext) dalam variabel lingkungan Anda. Anda harus menyertakan logika dalam kode fungsi AWS Lambda Anda untuk mendekripsi nilai-nilai ini.

T: Bagaimana saya dapat mengelola fungsi AWS Lambda?

Anda dapat dengan mudah mendaftar, menghapus, memperbarui, dan memantau fungsi Lambda Anda menggunakan dasbor di konsol AWS Lambda. Anda juga dapat menggunakan AWS CLI dan AWS SDK untuk mengelola fungsi Lambda Anda. Kunjungi Panduan Pengembang Lambda untuk mempelajari selengkapnya.

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 Metrik pemecahan masalah 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 Pemecahan masalah fungsi Lambda untuk mempelajari selengkapnya. Tarif Amazon CloudWatch Logs akan berlaku.

T: Bagaimana cara menskalakan fungsi AWS Lambda?

Anda tidak harus menskalakan fungsi Lambda – AWS Lambda menskalakannya secara otomatis untuk Anda. Setiap kali pemberitahuan kejadian diterima untuk fungsi Anda, AWS Lambda dengan cepat menempatkan kapasitas gratis dalam armada komputasinya dan menjalankan kode Anda. Karena kode stateless, AWS Lambda dapat memulai sebanyak mungkin salinan dari fungsi Anda sesuai kebutuhan tanpa penundaan pemasangan dan konfigurasi yang lama. Tidak ada batasan fundamental untuk menskalakan sebuah fungsi. AWS Lambda akan secara dinamis mengalokasikan kapasitas untuk menyesuaikan laju kejadian yang akan datang.

T: Bagaimana sumber daya komputasi ditetapkan untuk fungsi AWS Lambda?

Dalam model sumber daya AWS Lambda, Anda memilih jumlah memori yang Anda inginkan untuk fungsi Anda, dan 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 seharusnya saya menggunakan fungsi AWS Lambda dengan memori lebih dari 3008 MB?

Pelanggan yang menjalankan beban kerja intensif memori atau komputasi sekarang bisa menggunakan lebih banyak memori untuk fungsi mereka. Fungsi memori yang lebih besar membantu aplikasi multithread berjalan lebih cepat, menjadikannya ideal untuk data dan aplikasi intensif komputasi seperti machine learning, tugas batch dan ETL, pemodelan keuangan, genomik, HPC, dan pemrosesan media.

T: Berapa lama fungsi AWS Lambda dapat dijalankan?

Fungsi AWS Lambda dapat dikonfigurasi agar berjalan hingga 15 menit per eksekusi. Anda dapat mengatur batas waktu ke nilai antara 1 hingga 15 menit.

T: Bagaimana saya akan dikenakan biaya untuk menggunakan fungsi AWS Lambda?

AWS Lambda diberi harga berdasarkan bayar per penggunaan. Lihat halaman harga AWS Lambda untuk detailnya.

T: Bisakah saya menghemat uang di AWS Lambda dengan Compute Savings Plan?

Ya. Selain menghemat uang di Amazon EC2 dan AWS Fargate, Anda juga dapat menggunakan Compute Savings Plans untuk menghemat uang di AWS Lambda. Compute Savings Plans menawarkan diskon hingga 17% pada Durasi, Provisioned Concurrency, dan Durasi (Provisioned Concurrency). Compute Savings Plans tidak menawarkan diskon pada Permintaan dalam tagihan Lambda Anda. Namun, komitmen Compute Savings Plans Anda dapat berlaku untuk Permintaan dengan tarif reguler.

T: Apakah AWS Lambda mendukung penentuan versi?

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 versi fungsi Lambda.

T: Setelah kode diunggah, berapa lama fungsi AWS Lambda saya akan siap dipanggil?

Waktu deployment dapat bervariasi dengan ukuran kode Anda, tetapi fungsi AWS Lambda biasanya siap dipanggil dalam beberapa detik setelah pengunggahan.

T: Dapatkah saya menggunakan versi pustaka dukungan milik sendiri?

Ya. Anda dapat menyertakan salinan pustaka Anda sendiri (termasuk AWS SDK) untuk menggunakan versi yang berbeda dari versi default yang disediakan oleh AWS Lambda.

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 Plan 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 kejadian?

Sumber kejadian adalah layanan AWS atau aplikasi buatan pengembang yang memproduksi kejadian yang memicu fungsi AWS Lambda untuk berjalan. Beberapa layanan memublikasikan kejadian ini ke Lambda dengan memanggil fungsi cloud secara langsung (misalnya, Amazon S3). Lambda juga dapat meminta sumber daya di layanan lain yang tidak memublikasikan kejadian ke Lambda. Misalnya, Lambda dapat menarik catatan dari aliran Amazon Kinesis atau antrean Amazon SQS dan menjalankan fungsi Lambda untuk setiap pesan yang diambil.

Banyak layanan lain, seperti AWS CloudTrail, dapat bertindak sebagai sumber kejadian hanya dengan login ke Amazon S3 dan menggunakan pemberitahuan bucket S3 untuk memicu fungsi AWS Lambda.

T: Sumber kejadian apa yang dapat digunakan dengan AWS Lambda?

Silakan lihat dokumentasi kami untuk daftar lengkap sumber kejadian.

T: Bagaimana kejadian 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 kejadian Amazon S3, kunjungi Mengonfigurasi Notifikasi untuk Kejadian Amazon S3. Untuk mempelajari selengkapnya tentang Amazon DynamoDB Streams, kunjungi Panduan Developer DynamoDB Stream. Untuk mempelajari selengkapnya tentang menjalankan fungsi Lambda menggunakan Amazon SNS, kunjungi Panduan Pengembang Amazon SNS. Untuk informasi lebih lanjut tentang kejadian Amazon Cognito, kunjungi Amazon Cognito. Untuk informasi lebih lanjut 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?

Dari konsol AWS Lambda, Anda dapat memilih fungsi dan mengasosiasikannya dengan pemberitahuan dari bucket Amazon S3. Cara lainnya, Anda dapat menggunakan konsol Amazon S3 dan mengonfigurasi pemberitahuan bucket untuk mengirim ke fungsi AWS Lambda Anda. Fungsi yang sama ini juga tersedia melalui AWS SDK dan CLI.

T: Bagaimana cara membuat fungsi AWS Lambda merespons pembaruan di tabel Amazon DynamoDB?

Anda dapat memicu fungsi Lambda pada pembaruan tabel DynamoDB dengan berlangganan fungsi Lambda Anda ke DynamoDB Stream yang terkait dengan tabel. Anda dapat menghubungkan DynamoDB Stream dengan fungsi Lambda menggunakan konsol Amazon DynamoDB, konsol AWS Lambda, atau API registerEventSource Lambda.

T: Bagaimana cara menggunakan fungsi AWS Lambda untuk memproses rekaman di aliran Amazon Kinesis?

Dari konsol AWS Lambda, Anda dapat memilih fungsi Lambda dan menghubungkannya dengan aliran Amazon Kinesis yang dimiliki oleh akun yang sama. Fungsi yang sama ini juga tersedia melalui AWS SDK dan CLI.

T: Bagaimana AWS Lambda memproses data dari Amazon Kinesis Streams dan Amazon DynamoDB Streams?

Rekaman Amazon Kinesis dan Amazon DynamoDB Streams yang dikirimkan ke fungsi AWS Lambda Anda secara ketat diurutkan, per pecahan. Hal ini berarti bahwa jika Anda memasukkan dua rekaman dalam pecahan yang sama, Lambda menjamin bahwa fungsi Lambda Anda akan berhasil dipanggil dengan rekaman pertama sebelum dipanggil dengan rekaman kedua. Jika permintaan untuk satu kali rekaman habis, dibatasi, atau menemui kesalahan lainnya, Lambda akan mencoba lagi hingga berhasil (atau rekaman mencapai waktu kedaluwarsa 24 jam) sebelum bergerak ke rekaman berikutnya. Urutan rekaman di seluruh serpihan yang berbeda tidak dijamin, dan pemrosesan setiap serpihan terjadi secara paralel.

T: Bagaimana cara memilih antara AWS Lambda dan Layanan Terkelola Amazon untuk Apache Flink untuk kebutuhan analisis 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 jendela tumbling maksimum dengan durasi 15 menit berdasarkan stempel waktu peristiwa. Layanan Terkelola Amazon untuk Apache Flink memungkinkan Anda membangun aplikasi analitik yang lebih kompleks yang mendukung pilihan pemrosesan fleksibel dan toleransi terhadap kesalahan yang kuat, 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 peristiwa 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)?

Dari konsol AWS Lambda, Anda dapat memilih fungsi Lambda dan menghubungkannya dengan topik Amazon SNS. Fungsi yang sama ini juga tersedia melalui AWS SDK dan CLI.

T: Bagaimana cara menggunakan fungsi AWS Lambda untuk merespons email yang dikirimkan oleh Amazon Simple Email Service (SES)?

Dari Konsol Amazon SES, Anda dapat menyiapkan aturan penerimaan agar Amazon SES mengirimkan pesan Anda ke fungsi AWS Lambda. Fungsi yang sama tersedia melalui AWS SDK dan CLI.

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 Pengembang Amazon CloudWatch untuk mengetahui lebih banyak 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 dataset apa pun yang berkaitan dengan kumpulan 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?

AWS Lambda didesain untuk memproses kejadian dalam satuan milidetik. Latensi akan menjadi lebih tinggi segera setelah fungsi Lambda dibuat, diperbarui, atau jika belum digunakan baru-baru ini.

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?

Anda dapat memanggil fungsi Lambda melalui HTTPS dengan menentukan API RESTful khusus menggunakan Amazon API Gateway. Hal ini memberikan Anda titik akhir untuk fungsi yang dapat merespons ke panggilan REST seperti GET, PUT, dan POST. Baca selengkapnya tentang menggunakan AWS Lambda dengan Amazon API Gateway.

T: Bagaimana fungsi AWS Lambda saya dapat menyesuaikan perilakunya ke perangkat dan aplikasi yang membuat permintaan?

Ketika dipanggil melalui AWS Mobile SDK, fungsi AWS Lambda secara otomatis mendapatkan wawasan tentang perangkat dan aplikasi yang membuat panggilan melalui objek ‘konteks’.

T: Bagaimana cara fungsi AWS Lambda saya mempersonalisasi perilakunya berdasarkan identitas pengguna akhir suatu aplikasi?

Ketika aplikasi Anda menggunakan identitas Amazon Cognito, pengguna akhir dapat mengautentikasi dirinya menggunakan berbagai penyedia layanan login publik seperti Amazon, Facebook, Google, dan layanan lain yang kompatibel dengan OpenID Connect. Kemudian, identitas pengguna secara otomatis dan aman disajikan ke fungsi Lambda Anda dalam bentuk id Amazon Cognito, yang memungkinkannya mengakses data pengguna dari Amazon Cognito, atau sebagai kunci untuk menyimpan dan mengambil data di Amazon DynamoDB atau layanan web lainnya.

T: Bagaimana cara membuat keterampilan Alexa menggunakan AWS Lambda?

AWS Lambda terintegrasi dengan Alexa Skills Kit, kumpulan API mandiri, peralatan, dokumentasi dan contoh kode yang mempermudah Anda untuk membuat kemampuan suara (atau “keterampilan”) untuk Alexa. Anda cukup mengunggah kode fungsi Lambda untuk keterampilan Alexa baru yang Anda buat, dan AWS Lambda melakukan sisanya, mengeksekusi kode sebagai respons untuk interaksi suara Alexa dan secara otomatis mengelola sumber daya komputasi untuk Anda. Baca dokumentasi Alexa Skills Kit untuk detail selengkapnya.

T: Apa yang terjadi jika fungsi saya gagal ketika memproses suatu kejadian?

Untuk pemberitahuan bucket Amazon S3 dan kejadian khusus, AWS Lambda akan mencoba menjalankan fungsi Anda tiga kali apabila terjadi kesalahan dalam kode atau jika Anda melebihi batas layanan atau sumber daya.

Untuk sumber kejadian berurutan yang diminta AWS Lambda untuk Anda, seperti Amazon DynamoDB Streams dan Amazon Kinesis Streams, Lambda akan terus mencoba eksekusi dalam hal kesalahan kode pengembang sampai data berakhir. Anda dapat memantau kemajuan melalui Amazon Kinesis dan konsol Amazon DynamoDB, serta melalui metrik Amazon CloudWatch yang dihasilkan AWS Lambda untuk fungsi Anda. Anda juga dapat mengatur alarm Amazon CloudWatch berdasarkan tingkat kesalahan atau pembatasan eksekusi.

Menggunakan AWS Lambda untuk membangun aplikasi

T: Apa itu aplikasi tanpa server?

Aplikasi berbasis Lambda (disebut juga sebagai aplikasi tanpa server) terdiri dari fungsi yang dipicu oleh kejadian. Secara umum, aplikasi tanpa server terdiri dari satu atau beberapa fungsi yang dipicu oleh kejadian seperti unggahan objek ke Amazon S3, pemberitahuan Amazon SNS, atau tindakan API. Fungsi ini dapat berdiri sendiri atau memanfaatkan sumber daya lain seperti tabel DynamoDB atau bucket Amazon S3. Aplikasi tanpa server yang paling dasar adalah sebuah fungsi.

T: Bagaimana cara menerapkan dan mengelola aplikasi tanpa server?

Anda dapat menerapkan dan mengelola aplikasi tanpa server menggunakan Model Aplikasi Tanpa Server AWS (AWS Serverless Application Model (AWS SAM)). AWS SAM adalah spesifikasi yang menentukan aturan untuk mengekspresikan aplikasi tanpa server di AWS. Spesifikasi ini sejajar dengan sintaks yang digunakan oleh AWS CloudFormation saat ini dan didukung secara asli dalam AWS CloudFormation sebagai satu set jenis sumber daya (disebut sebagai "sumber daya tanpa server"). Sumber daya ini memudahkan pelanggan AWS dalam menggunakan CloudFormation untuk mengonfigurasi dan menerapkan aplikasi nirserver, menggunakan API CloudFormation yang ada.

T: Bagaimana saya dapat menemukan aplikasi tanpa server yang sudah ada yang dikembangkan oleh komunitas AWS?

Anda dapat memilih dari kumpulan aplikasi tanpa server yang diterbitkan oleh pengembang, perusahaan, dan partner di komunitas AWS dengan AWS Serverless Application Repository. Setelah menemukan aplikasi, Anda dapat mengonfigurasi 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 lebih lanjut, 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 yang spesifik. 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 menggunakanAWS X-Ray dengan menambahkan izin X-Ray ke peran eksekusi fungsi Lambda Anda 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 Pemecahan masalah aplikasi berbasis Lambda untuk mempelajari selengkapnya. Tarif AWS X-Ray akan berlaku.

T. Bisakah saya membangun aplikasi tanpa server yang terhubung ke database relasional?

Ya. Anda dapat membangun aplikasi tanpa server berbasis-Lambda yang sangat bisa diskalakan dan aman yang terhubung ke database relasional menggunakan Amazon RDS Proxy, proksi database yang sangat tersedia yang mengelola ribuan koneksi konkuren ke database 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 tanpa server yang menggunakan gabungan 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 pada GitHub di sini.

Dukungan Gambar Kontainer

T: Apa yang dimaksud dengan Dukungan Gambar Kontainer untuk AWS Lambda?

AWS Lambda saat ini memungkinkan Anda mengemas dan men-deploy fungsi sebagai gambar kontainer. Pelanggan dapat memanfaatkan fleksibilitas dan alat kontainer yang dikenal, serta agility dan kemudahan operasional AWS Lambda untuk membangun aplikasi.

T: Bagaimana cara menggunakan Dukungan Gambar Kontainer untuk AWS Lambda?

Anda dapat memulai dengan gambar dasar yang disediakan AWS untuk Lambda atau menggunakan salah satu gambar komunitas atau perusahaan privat pilihan Anda. Kemudian, cukup gunakan Docker CLI untuk membuat gambar, unggah ke Amazon ECR, lalu buat fungsi menggunakan semua antarmuka dan alat Lambda yang sudah dikenal, seperti AWS Management Console, AWS CLI, AWS SDK, AWS SAM, dan AWS CloudFormation.

T: Manakah tipe gambar kontainer yang didukung?

Anda dapat menerapkan gambar dasar Linux pihak ketiga (misalnya Alpine atau Debian) ke Lambda selain gambar yang disediakan Lambda. AWS Lambda akan mendukung semua gambar berdasarkan format manifes gambar berikut: Docker Image Manifest V2 Schema 2 (digunakan dengan Docker versi 1.10 dan yang lebih baru) atau Open Container Initiative (OCI) Spec (v1.0 dan yang lebih baru). Lambda mendukung gambar dengan ukuran hingga 10 GB.

T: Apa gambar dasar yang bisa digunakan?

AWS Lambda menyediakan berbagai gambar dasar yang dapat diperluas oleh pelanggan dan pelanggan juga dapat menggunakan gambar berbasis Linux yang disukai dengan ukuran hingga 10 GB.

T: Apa alat kontainer yang dapat digunakan untuk mengemas dan men-deploy fungsi sebagai gambar kontainer?

Anda dapat menggunakan alat kontainer apa pun selama alat tersebut mendukung salah satu format manifes gambar kontainer berikut: Docker Image Manifest V2 Schema 2 (digunakan dengan Docker versi 1.10 dan yang lebih baru) atau Open Container Initiative (OCI) Specifications (v1.0 dan yang lebih baru). Misalnya, Anda dapat menggunakan alat kontainer asli (mis. docker run, docker compose, Buildah, and Packer) untuk menentukan fungsi sebagai gambar kontainer dan men-deploy ke Lambda.

T: Apa fitur AWS Lambda yang tersedia untuk fungsi yang di-deploy sebagai gambar kontainer?

Semua fitur AWS Lambda yang ada, kecuali lapis Lambda dan Penandatanganan Kode, dapat digunakan dengan fungsi yang di-deploy sebagai gambar kontainer. Setelah di-deploy, AWS Lambda akan memperlakukan gambar sebagai gambar yang tidak dapat diubah. Pelanggan dapat menggunakan lapis kontainer selama proses pembangunannya untuk menyertakan dependensi.

T: Akankah AWS Lambda melakukan patch dan memperbarui gambar kontainer yang saya deploy?

Tidak untuk saat ini. Gambar Anda, setelah di-deploy ke AWS Lambda, tidak akan dapat diubah. Layanan ini tidak akan melakukan patch atau memperbarui gambar. Namun, AWS Lambda akan menerbitkan gambar dasar yang dikurasi untuk semua runtime yang didukung yang didasarkan pada lingkungan yang dikelola Lambda. Gambar yang dipublikasikan ini akan di-patch dan diperbarui bersama dengan pembaruan pada runtime yang dikelola AWS Lambda. Anda dapat menarik dan menggunakan gambar dasar terbaru dari DockerHub atau Amazon ECR Public, membangun ulang gambar kontainer Anda, dan men-deploy ke AWS Lambda melalui Amazon ECR. Layanan ini memungkinkan Anda membangun dan menguji gambar dan runtime yang diperbarui, sebelum men-deploy gambar untuk diproduksi.

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:

  1. 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. 
  2. 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. 
  3. 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?

Tidak - AWS Lambda memastikan profil performa untuk fungsi yang dikemas sebagai gambar kontainer sama dengan yang dikemas sebagai arsip ZIP, terutama waktu mulai sub-detik.

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)?

Lambda Runtime Interface Emulator adalah proxy untuk API Runtime Lambda yang memungkinkan pelanggan menguji secara lokal fungsi Lambda mereka 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 Lambda Runtime Interface Emulator (RIE) selama pengujian lokal?

API Runtime Lambda dalam layanan Lambda yang berjalan menerima kejadian JSON dan menampilkan respons. Lambda Runtime Interface Emulator memungkinkan fungsi yang dikemas sebagai gambar kontainer menerima permintaan HTTP selama pengujian lokal dengan alat seperti cURL, dan menampilkannya melalui antarmuka yang sama secara lokal ke fungsi tersebut. Ini memungkinkan Anda menggunakan perintah docker run atau docker-compose up untuk menguji aplikasi lambda Anda secara lokal.

T: Apa perilaku fungsi yang dapat diuji secara lokal dengan emulator?

Anda dapat menggunakan emulator untuk menguji apakah kode fungsi Anda kompatibel dengan lingkungan Lambda, berhasil dijalankan, dan memberikan keluaran yang diharapkan. Misalnya, Anda dapat meniru kejadian pengujian dari sumber kejadian lainnya. Anda juga dapat menggunakannya untuk menguji ekstensi dan agen yang dibangun ke dalam gambar kontainer terhadap API Ekstensi Lambda.

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 untuk 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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 mengonfigurasi 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 Provisioned Concurrency (PC)?

Lambda SnapStart adalah optimalisasi performa yang membantu fungsi Java Anda untuk mencapai waktu startup hingga 10x lebih cepat dengan mengurangi latensi variabel yang ditanggung selama pelaksanaan kode satu kali inisialisasi. Lambda SnapStart bekerja secara luas di semua fungsi dalam aplikasi atau akun Anda tanpa biaya tambahan. Saat pelanggan memublikasikan versi fungsi dengan Lambda SnapStart, kode fungsi diinisialisasi sebelumnya, bukan pada saat panggilan pertama. Lambda kemudian mengambil snapshot lingkungan pelaksanaan yang diinisialisasi serta mempertahankannya dalam cache bertingkat untuk akses latensi rendah. Saat fungsi pertama kali dipanggil lalu diskalakan, Lambda melanjutkan fungsi dari snapshot dalam cache, alih-alih menginisialisasi dari awal, yang mengakibatkan latensi startup lebih rendah.

Meskipun mengurangi latensi startup, Lambda SnapStart berfungsi sebagai pengoptimalan upaya terbaik, dan tidak menjamin eliminasi cold start. Jika aplikasi Anda mempunyai persyaratan latensi yang ketat dan memerlukan waktu startup dua digit milidetik, kami sarankan Anda menggunakan PC.

T. Waktu proses manakah yang didukung oleh 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?

Tidak. Lambda SnapStart dan PC tidak dapat diaktifkan bersamaan, 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 pada kedua arsitektur x86 dan Arm?

Tidak. Saat ini, Anda dapat mengonfigurasikan Lambda SnapStart hanya untuk fungsi yang berjalan di arsitektur x86.
 
T. Dapatkah saya mengaktifkan Lambda SnapStart dengan Amazon Elastic File System (EFS)?

Tidak. Saat ini, Anda tidak dapat mengaktifkan Lambda SnapStart dengan Amazon EFS.
 
T. Dapatkah saya mengaktifkan Lambda SnapStart dengan penyimpanan sementara (/tmp) lebih besar yang melebihi 512 MB?
 
Tidak. Saat ini, Anda tidak dapat 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 melaksanakan 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 pelaksanaan kode Anda 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?

Dengan Lambda SnapStart, Lambda mempertahankan snapshot lingkungan pelaksanaan yang diinisialisasi untuk tiga versi fungsi yang terakhir dipublikasikan, selama versi yang dipublikasikan terus menerima panggilan. Snapshot yang terkait dengan versi fungsi yang dipublikasikan akan kedaluwarsa jika tetap tidak aktif selama lebih dari 14 hari.

T. Bagaimana cara mengenkripsi snapshot lingkungan pelaksanaan yang diinisialisasi yang dibuat oleh 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 kode inisialisasi saya dapat berjalan dengan Lambda SnapStart?

Durasi inisialisasi yang diizinkan untuk Lambda SnapStart akan sama dengan durasi timeout pelaksanaan yang telah Anda konfigurasikan untuk fungsi Anda. Batas maksimum timeout pelaksanaan yang dapat dikonfigurasikan untuk sebuah fungsi adalah 15 menit.
 

Provisioned Concurrency

T: Apa itu AWS Lambda Provisioned Concurrency?

Provisioned Concurrency memberi Anda kontrol lebih besar pada kinerja aplikasi tanpa server Anda. Jika diaktifkan, Provisioned Concurrency menjaga fungsi selalu dimulai dan sangat siap untuk merespons dalam milidetik dua digit.

T: Bagaimana caranya menyiapkan dan mengelola Provisioned Concurrency?

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 lebih lanjut tentang Provisioned Concurrency, lihat dokumentasi.

Q: Apakah saya perlu mengubah kode jika ingin menggunakan Provisioned Concurrency?

Anda tidak perlu melakukan perubahan apa pun pada kode Anda untuk menggunakan Provisioned Concurrency. Provisioned Concurrency berfungsi lancar dengan semua fungsi dan waktu proses yang ada. Tidak ada perubahan pada model pemanggilan dan eksekusi Lambda saat menggunakan Provisioned Concurrency.

Q: Bagaimana cara perhitungan biaya Provisioned Concurrency?

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 Provisioned Concurrency selengkapnya, lihat Harga AWS Lambda.

T: Kapan sebaiknya saya menggunakan Provisioned Concurrency?

Provisioned Concurrency cocok untuk membuat aplikasi yang sensitif terhadap latensi, seperti web atau backend mobile, API yang dijalankan secara sinkron, dan microservice interaktif. Anda dapat dengan mudah mengonfigurasi jumlah konkurensi yang sesuai berdasarkan permintaan unik aplikasi Anda. Anda dapat meningkatkan jumlah konkurensi saat permintaan meningkat dan menurunkannya, atau mematikan sepenuhnya, saat permintaan menurun.

T: Apa yang terjadi jika fungsi menerima pemanggilan di atas level Provisioned Concurrency yang telah dikonfigurasi?

Jika konkurensi suatu fungsi mencapai level yang telah dikonfigurasi, pemanggilan fungsi berikutnya akan memiliki karakteristik latensi dan skala fungsi Lambda reguler. Anda dapat membatasi fungsi Anda ke hanya menaikkan skala ke level terkonfigurasi. Jika dilakukan maka akan mecegah fungsi agar tidak melebihi level Provisioned Concurrency yang telah dikonfigurasi. Ini adalah mekanisme untuk mencegah variabilitas yang tidak diinginkan di aplikasi Anda saat permintaan melebihi jumlah yang diantisipasi.

Fungsi AWS Lambda didukung oleh prosesor Graviton2

T: Apa fungsi AWS Lambda yang didukung oleh prosesor Graviton2?

AWS Lambda memungkinkan Anda menjalankan fungsi pada prosesor berbasis x86 atau berbasis Arm. Prosesor AWS Graviton2 dibuat khusus oleh Amazon Web Services menggunakan core Arm Neoverse 64-bit untuk memberikan peningkatan performa harga bagi beban kerja cloud Anda. Pelanggan mendapatkan keuntungan yang sama dari AWS Lambda, menjalankan kode tanpa menyediakan atau mengelola server, penskalaan otomatis, ketersediaan tinggi, dan hanya membayar sumber daya yang Anda konsumsi.

T: Mengapa saya harus menggunakan fungsi AWS Lambda yang didukung oleh prosesor Graviton2?

Fungsi AWS Lambda yang didukung oleh Graviton2, menggunakan arsitektur prosesor berbasis Arm yang dirancang oleh AWS, dirancang untuk memberikan performa harga hingga 34% lebih baik dibandingkan dengan fungsi yang berjalan pada prosesor x86, untuk berbagai beban kerja nirserver, seperti backend web dan seluler, data, dan pemrosesan aliran. Dengan latensi yang lebih rendah, performa hingga 19% lebih baik, biaya 20% lebih rendah, dan efisiensi daya tertinggi yang saat ini tersedia di AWS, fungsi Graviton2 dapat menjalankan aplikasi nirserver bermisi kritis. Pelanggan dapat mengonfigurasi fungsi yang ada dan yang baru untuk menargetkan prosesor Graviton2. Mereka dapat men-deploy fungsi yang berjalan di Graviton2 sebagai file zip atau citra kontainer.

T: Bagaimana cara mengonfigurasi fungsi saya untuk berjalan di prosesor Graviton2?

Anda dapat mengonfigurasi fungsi untuk dijalankan di Graviton2 melalui Konsol Manajemen AWS, API AWS Lambda, AWS CLI, dan AWS CloudFormation dengan menyetel flag arsitektur ke 'arm64' untuk fungsi Anda.

T: Bagaimana cara men-deploy aplikasi saya yang dibangun menggunakan fungsi yang didukung oleh prosesor Graviton2?

Tidak ada perubahan antara fungsi berbasis x86 dan berbasis Arm. Cukup unggah kode Anda melalui Konsol Manajemen AWS, file zip, atau citra kontainer, dan AWS Lambda secara otomatis menjalankan kode Anda saat dipicu, tanpa mengharuskan Anda menyediakan atau mengelola infrastruktur.

T: Dapatkah aplikasi menggunakan kedua fungsi yang didukung oleh prosesor Graviton2 maupun prosesor x86?

Sebuah aplikasi dapat berisi fungsi yang berjalan pada kedua arsitektur. AWS Lambda memungkinkan Anda mengubah arsitektur ('x86_64' atau 'arm64') dari versi fungsi Anda saat ini. Setelah Anda membuat versi tertentu dari fungsi Anda, arsitekturnya tidak dapat diubah.

T: Apakah AWS Lambda mendukung citra kontainer multi-arsitektur?

Tidak. Setiap versi fungsi hanya dapat menggunakan satu citra kontainer.

T: Dapatkah saya membuat Lapisan AWS Lambda yang menargetkan fungsi yang didukung oleh prosesor AWS Graviton2?

Ya. Lapisan dan ekstensi dapat ditargetkan ke arsitektur yang kompatibel dengan 'x86_64' atau 'arm64'. Arsitektur default untuk fungsi dan lapisan adalah 'x86_64'.

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, silakan 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?

Fungsi AWS Lambda yang didukung oleh prosesor AWS Graviton2 20% lebih murah dibandingkan dengan fungsi Lambda berbasis x86. Tingkat gratis Lambda berlaku untuk fungsi AWS Lambda yang didukung oleh arsitektur berbasis x86 dan Arm.

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 melakukannya, kami sarankan menggunakan 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.

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, silakan lihat halaman Memulai 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 lebih lanjut tentang menggunakan fungsi Lambda dengan Graviton2, silakan lihat dokumentasi.

Amazon EFS untuk AWS Lambda

T: Apa yang dimaksud Amazon EFS untuk AWS Lambda?

Dengan Amazon Elastic File System (Amazon EFS) untuk AWS Lambda, pelanggan dapat membaca, menulis, dan mempertahankan volume data yang besar dengan aman, hampir pada segala skala menggunakan sistem file NFS elastis yang dikelola sepenuhnya, yang dapat menskalakan sesuai permintaan tanpa penyediaan atau pengelolaan kapasitas. Sebelumnya, pengembang menambahkan kode ke fungsi untuk mengunduh data dari S3 atau basis data ke penyimpanan lokal sementara, terbatas hanya 512 MB. Dengan EFS untuk Lambda, pengembang tidak perlu menulis kode untuk mengunduh data ke penyimpanan sementara agar dapat memprosesnya.

T: Bagaimana cara menyiapkan Amazon EFS untuk Lambda?

Pengembang 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?

Ya. Target pemasangan untuk Amazon EFS terkait dengan subnet di VPC. Fungsi AWS Lambda perlu dikonfigurasi untuk mengakses VPC tersebut.

T: Siapa yang sebaiknya menggunakan Amazon EFS untuk Lambda?

EFS for Lambda cocok digunakan untuk membangun aplikasi machine learning atau memuat file ataupun model referensi yang besar, memproses atau mencadangkan data berjumlah besar, meng-host konten web, atau mengembangkan sistem build internal. Pelanggan juga dapat menggunakan EFS for Lambda untuk mempertahankan status antara panggilan di dalam arsitektur layanan mikro stateful, di alur kerja StepFunctions, atau file bersama antara aplikasi nirserver dan aplikasi berbasis instans atau kontainer.

T: Apakah data saya akan dienkripsi dalam transit?

Ya. Enkripsi data dalam transit menggunakan Transport Layer Security (TLS) 1.2 standar industri untuk mengenkripsi data yang dikirim antara fungsi AWS Lambda dan sistem file Amazon EFS.

T: Apakah data saya dienkripsi saat istirahat?

Pelanggan dapat menyediakan Amazon EFS untuk mengenkripsi data saat istirahat. Data yang terenkripsi saat istirahat dienkripsi secara transparan saat ditulis dan didekripsi secara transparan saat dibaca, sehingga Anda tidak perlu mengubah aplikasi Anda. Kunci enkripsi dikelola oleh AWS Key Management Service (KMS), menghilangkan kebutuhan untuk membuat dan memelihara infrastruktur pengelolaan kunci yang aman.

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?

Tidak. Setiap fungsi Lambda akan dapat mengakses satu sistem file EFS.

T: Dapatkah saya menggunakan sistem file Amazon EFS yang sama di beberapa fungsi, kontainer, dan instans?

Ya. Amazon EFS mendukung fungsi Lambda, kontainer ECS dan Fargate, dan instans EC2. Anda dapat membagikan sistem file yang sama dan menggunakan kebijakan IAM dan Titik Akses untuk mengontrol apa yang dapat diakses oleh setiap fungsi, kontainer, atau instans.  

Ekstensi Lambda

T: Apa itu Ekstensi AWS Lambda?

Ekstensi AWS Lambda memungkinkan Anda mengintegrasikan Lambda dengan alat-alat favorit Anda untuk pemantauan, kemudahan pengamatan, keamanan, dan tata kelola. Ekstensi memungkinkan Anda dan vendor alat pilihan Anda terhubung ke siklus aktif Lambda dan terintegrasi lebih mendalam ke lingkungan eksekusi Lambda.

T: Bagaimana cara kerja ekstensi Lambda?

Ekstensi adalah proses pendamping yang berjalan di dalam lingkungan eksekusi Lambda yang merupakan tempat kode fungsi Anda dieksekusi. Selain itu, ekstensi dapat berjalan di luar invokasi fungsi - yaitu ekstensi dimulai sebelum fungsi dimulai, berjalan secara paralel dengan fungsi, dapat berjalan setelah eksekusi fungsi selesai, dan dapat berjalan sebelum layanan Lambda menonaktifkan lingkungan eksekusi.

T: Apa kegunaan Ekstensi Lambda?

Anda dapat menggunakan ekstensi untuk alat-alat favorit Anda untuk pemantauan, kemudahan pengamatan, keamanan, dan tata kelola dari AWS serta mitra berikut: AppDynamics, Coralogix, Datadog, Dynatrace, Epsagon, HashiCorp, Honeycomb, Imperva, Lumigo, Check Point CloudGuard, New Relic, Thundra, Splunk, Sentry, Site24x7, Sumo Logic, AWS AppConfig, Amazon CodeGuru Profiler, Amazon CloudWatch Lambda Insights, AWS Distro for OpenTelemetry. Untuk mempelajari selengkapnya tentang ekstensi ini, kunjungi luncurkan postingan blog.

T: Bagaimana cara menyiapkan dan mengelola ekstensi Lambda?

Anda dapat menerapkan ekstensi, menggunakan Lapisan, pada beberapa fungsi Lambda menggunakan Konsol, CLI, atau alat-alat Infrastructure as Code seperti CloudFormation, AWS Serverless Application Model, dan Terraform. Untuk memulai, kunjungi dokumentasi.

T: Runtime apa yang dapat digunakan dengan ekstensi AWS Lambda?

Anda dapat melihat daftar runtime yang mendukung ekstensi di sini.

T: Apakah Ekstensi berpengaruh terhadap batas paket deployment?

Ya, ukuran unzipped total dari fungsi dan semua Ekstensi tidak dapat melebihi batas ukuran paket deployment unzipped sebesar 250 MB.

T: Apakah penggunaan ekstensi berdampak pada kinerja?

Ekstensi dapat berdampak pada kinerja fungsi Anda karena menggunakan sumber daya seperti CPU, memori, dan penyimpanan bersamaan dengan fungsi, dan juga karena ekstensi dijalankan sebelum kode fungsi. Contohnya, jika ekstensi melakukan operasi komputasi intensif, Anda mungkin melihat bahwa durasi eksekusi fungsi Anda meningkat karena ekstensi dan kode fungsi Anda menggunakan sumber daya CPU yang sama. Karena Lambda mengalokasikan CPU proporsional berdasarkan pengaturan memori yang Anda pilih, Anda dapat melihat peningkatan eksekusi dan durasi inisialisasi pada pengaturan memori yang lebih rendah saat lebih banyak proses bersaing untuk sumber daya CPU yang sama.

Anda dapat menggunakan metrik PostRuntimeExecutionDuration untuk mengukur waktu tambahan yang dipakai ekstensi setelah eksekusi fungsi, dan Anda dapat menggunakan metrik MaxMemoryUsed untuk mengukur kenaikan penggunaan memori. Untuk memahami dampak dari ekstensi tertentu, Anda juga dapat menggunakan metrik Durasi. Untuk saat ini, respons eksekusi fungsi dikembalikan setelah eksekusi fungsi dan eksekusi ekstensi telah selesai. Untuk mempelajari selengkapnya, kunjungi Dokumentasi developer Lambda.

T: Bagaimana sistem pembayaran untuk penggunaan ekstensi Lambda?

Ekstensi menggunakan model penagihan yang sama dengan fungsi Lambda. Jika menggunakan fungsi Lambda dengan ekstensi, Anda membayar permintaan yang dipenuhi dan waktu komputasi gabungan yang digunakan untuk menjalankan kode dan semua ekstensi Anda, dengan kenaikan 1ms. Anda akan dikenakan biaya untuk waktu komputasi sesuai harga per durasi Lambda yang ada. Untuk mempelajari selengkapnya, lihat Harga AWS Lambda.

Siklus aktif Lambda tersusun dari tiga fase yang berbeda: ‘init’, saat AWS Lambda menjalankan fungsi, dependensi, dan ekstensi; ‘invoke’, saat Lambda mengeksekusi fungsi dan kode ekstensi sebagai respons terhadap pemicu; dan ‘shut down’, setelah eksekusi fungsi selesai, tetapi kode ekstensi masih dapat dieksekusi, dan yang dapat berlangsung hingga dua detik. Anda dapat ditagih untuk waktu komputasi yang digunakan untuk menjalankan kode ekstensi Anda selama tiga fase siklus aktif Lambda. Untuk mempelajari selengkapnya tentang siklus aktif Lambda, lihat dokumentasi tentang Lingkungan Eksekusi Lambda.

Tidak ada biaya tambahan untuk memasang ekstensi, meskipun penawaran partner mungkin dikenakan biaya. Lihat situs web partner yang relevan untuk detail selengkapnya.

T: Dapatkah saya membuat ekstensi Lambda kustom sendiri?

Ya, dengan menggunakan API Ekstensi Runtime AWS Lambda. Baca dokumentasi untuk mempelajari selengkapnya.

T: Bagaimana cara kerja ekstensi saat Provisioned Concurrency diaktifkan?

Provisioned Concurrency menjaga fungsi selalu dimulai dan siap untuk merespons dalam milidetik dua digit. Jika diaktifkan, Provisioned Concurrency juga akan memulai ekstensi dan menjaganya agar tetap siap untuk mengeksekusi bersama kode fungsi.

T: Izin apa yang ada dimiliki ekstensi?

Karena dijalankan dalam lingkungan yang sama dengan fungsi Lambda, Ekstensi memiliki akses ke sumber daya yang sama dengan fungsi dan izin dibagikan di antara fungsi dan ekstensi. Oleh karena itu, keduanya saling berbagi kredensial, peran, dan variabel lingkungan yang sama. Ekstensi memiliki akses baca-saja untuk kode fungsi, dan dapat membaca dan menulis dalam /tmp.

T: Apa itu AWS Lambda Telemetry API?

AWS Lambda Telemetry API memungkinkan Anda untuk menggunakan ekstensi untuk mendapatkan pemantauan dan pengawasan data yang ditingkatkan langsung dari Lambda dan mengirimkannya ke tujuan pilihan Anda.

T: Bagaimana cara kerja Telemetry API?

Layanan Lambda secara otomatis menangkap dan mengalirkan data telemetri ke Amazon CloudWatch dan AWS X-Ray. Telemetry API memberikan antarmuka HTTP atau TCP sederhana untuk ekstensi guna menerima data telemetri yang sama bersama dengan peristiwa siklus hidup lingkungan eksekusi Lambda, dan metrik tingkat pemanggilan fungsi. Ekstensi dapat menggunakan Telemetry API untuk mengonsumsi pengaliran telemetri langsung dari Lambda, kemudian memproses, memfilter, dan mengirimkannya ke tujuan mana pun yang diinginkan.

T: Bagaimana cara mulai menggunakan Telemetry API?

Anda dapat menerapkan ekstensi yang diaktifkan Telemetry API untuk fungsi Lambda Anda menggunakan Konsol AWS Lambda, AWS CLI, atau alat-alat Infrastructure as Code seperti AWS CloudFormation, AWS Serverless Application Model (SAM), dan Terraform. Anda tidak perlu membuat perubahan kode untuk menggunakan ekstensi yang diaktifkan Telemetry API dengan fungsi Lambda Anda. Cukup tambahkan ekstensi dari penyedia alat pilihan Anda pada fungsi Lambda Anda.  Untuk memulai dengan ekstensi dari Partner APN, ikuti tautan yang disediakan dalam luncurkan postingan blog. Anda juga dapat membuat ekstensi sendiri yang menggunakan Telemetry API. Untuk mempelajari caranya, kunjungi Panduan Developer AWS Lambda.

T: Apakah Telemetry API berdampak pada kinerja?

Anda hanya dapat menggunakan Telemetry API dari dalam Ekstensi AWS Lambda. Ekstensi dapat berdampak pada kinerja fungsi Anda karena menggunakan sumber daya seperti CPU, memori, dan penyimpanan bersamaan dengan fungsi. Penggunaan memori meningkat secara linear seiring peningkatan jumlah langganan Telemetry API karena setiap langganan membuka buffer memori baru untuk menyimpan data telemetri. Namun, Anda dapat mengoptimalkan penggunaan memori dengan menyesuaikan konfigurasi buffer dalam permintaan langganan Telemetry API. Kami menyarankan agar para vendor ekstensi mempublikasikan perkiraan konsumsi sumber daya untuk mempermudah developer fungsi memilih ekstensi yang sesuai. Silakan baca dokumentasi ekstensi vendor Anda untuk memahami potensi overhead performa dari penggunaan ekstensi mereka.

T: Bagaimana saya akan ditagihkan jika menggunakan Telemetry API?

Tidak ada biaya tambahan untuk menggunakan AWS Lambda Telemetry API. Ekstensi yang menggunakan Telemetry API memiliki model penagihan yang sama dengan ekstensi dan fungsi Lambda lainnya. Untuk mempelajari lebih lanjut tentang harga Ekstensi, silakan lihat halaman harga Lambda.

T: Apakah menggunakan Telemetry API akan menonaktifkan pengiriman log ke Log Amazon CloudWatch?

Tidak. Secara default, platform Lambda mengirimkan semua data telemetri ke CloudWatch Logs, dan menggunakan Telemetry API tidak akan menonaktifkan egress ke Log CloudWatch.

URL fungsi Lambda

T: Apakah fungsi AWS Lambda mendukung titik akhir HTTP(S)?

Ya. Fungsi Lambda dapat dikonfigurasi dengan URL fungsi, sebuah titik akhir HTTPS bawaan yang dapat dipanggil menggunakan peramban, curl, dan klien HTTP apa pun. URL Fungsi adalah cara mudah untuk mulai membangun fungsi yang dapat diakses HTTPS.

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 dokumentasinya.

T: Bagaimana cara mengamankan URL fungsi Lambda saya?

URL fungsi Lambda diamankan dengan otorisasi IAM secara default. Anda dapat memilih menonaktifkan otorisasi IAM untuk membuat titik akhir publik atau jika Anda berencana untuk menerapkan otorisasi kustom sebagai bagian dari logika bisnis fungsi.

T: Bagaimana cara memanggil fungsi saya dengan URL fungsi Lambda?

Anda dapat dengan mudah memanggil fungsi dari peramban web dengan bernavigasi ke URL Lambda, dari kode aplikasi klien Anda menggunakan pustaka HTTP, atau dari baris perintah menggunakan curl.

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?

Nama domain kustom saat ini tidak didukung URL fungsi. Anda dapat menggunakan domain kustom dengan URL fungsi dengan membuat distribusi Amazon CloudFront dan CNAME untuk memetakan domain kustom ke nama distribusi CloudFront Anda. Lalu, petakan nama domain distribusi CloudFront Anda untuk dirutekan ke URL fungsi sebagai asal.

T: Dapatkah URL fungsi Lambda digunakan untuk memanggil fungsi di VPC?

Ya, URL fungsi dapat digunakan untuk memanggil fungsi Lamda 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, merespons pengguna akhir pada latensi jaringan terendah. Anda cukup mengunggah kode Node.js atau Python Anda ke AWS Lambda dan mengonfigurasi fungsi untuk dipicu sebagai respons terhadap permintaan Amazon CloudFront (yaitu ketika permintaan pengguna 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 dipicu sebagai respons terhadap kejadian 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. Menggunakan Lambda@Edge dan Amazon CloudFront memungkinkan Anda mengeksekusi logika di beberapa lokasi AWS berdasarkan lokasi pengguna akhir Anda.

Skalabilitas dan ketersediaan

T: Bagaimana ketersediaan fungsi AWS Lambda?

AWS Lambda didesain untuk menggunakan replikasi dan redundansi guna memberikan ketersediaan yang tinggi untuk layanan itu sendiri maupun fungsi Lambda yang dioperasikannya. Tidak ada jendela pemeliharaan atau waktu henti terjadwal untuk keduanya.

T: Apakah fungsi AWS Lambda saya akan tetap tersedia ketika saya mengubah kode atau konfigurasinya?

Ya. Ketika Anda memperbarui fungsi Lambda, akan ada jendela waktu singkat, biasanya kurang dari satu menit, ketika permintaan dapat disajikan oleh versi lama atau versi baru dari fungsi Anda.

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 batasan 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 pada 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 batasan pada masing-masing fungsi (kunjungi di sini untuk info mengenai Konkurensi Terpesan).

T: Seberapa cepat fungsi AWS Lambda saya menskalakan?

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?

Jika gagal, fungsi Lambda yang dipanggil secara sinkronis akan merespons dengan pengecualian. Fungsi Lambda yang dipanggil secara asinkronis dicoba ulang setidaknya 3 kali. Kejadian dari Amazon Kinesis Streams dan Amazon DynamoDB Streams dicoba ulang hingga fungsi Lambda berhasil atau data kedaluwarsa. Kinesis dan DynamoDB Streams me-retain data selama minimal 24 jam.

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 melampaui kebijakan coba lagi untuk permintaan berbasis aliran, data sudah kedaluwarsa dan karenanya ditolak.

T: Sumber daya apa yang dapat saya konfigurasi sebagai antrean dead letter untuk fungsi Lambda?

Anda dapat mengonfigurasi antrean Amazon SQS atau topik Amazon SNS sebagai antrean dead letter.

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 Pengembang 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 Pengembang Lambda untuk mempelajari selengkapnya.

T; Bagaimana cara mengontrol antrean Amazon SQS yang dapat dipilih oleh fungsi AWS Lambda?

Kontrol akses dapat dikelola oleh peran fungsi Lambda atau pengaturan kebijakan sumber daya pada antrean itu sendiri. Jika kedua kebijakan itu ada, kedua izin yang semakin terbatas tersebut akan diterapkan.

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 dikelola sepenuhnya untuk artefak kode yang ditandatangani secara digital dan mengonfigurasi fungsi Lambda untuk memverifikasi tanda tangan saat penerapan. 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?

Anda dapat mengaktifkan penandatanganan kode dengan membuat Konfigurasi Penandatanganan Kode melalui AWS Management Console, Lambda API, AWS CLI, AWS CloudFormation, dan AWS SAM. Konfigurasi Penandatanganan Kode membantu Anda menentukan profil penandatanganan yang disetujui dan mengonfigurasi apakah akan memperingatkan atau menolak deployment jika pemeriksaan tanda tangan gagal. Konfigurasi Penandatanganan Kode dapat dilampirkan ke fungsi Lambda individu untuk mengaktifkan fitur penandatanganan kode. Fungsi tersebut sekarang mulai memverifikasi tanda tangan saat deployment.

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, baca dokumentasi AWS Lambda.

T: Bisakah saya mengaktifkan penandatanganan kode untuk fungsi yang ada?

Ya, Anda dapat mengaktifkan penandatanganan kode untuk fungsi yang ada dengan melampirkan konfigurasi penandatanganan kode ke fungsi tersebut. Anda dapat melakukannya menggunakan konsol AWS Lambda, API Lambda, AWS CLI, AWS CloudFormation, dan AWS SAM.

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 posting blog peluncuran untuk kontrol pencatatan lanjutan atau Panduan Developer Lambda.

T. Dapatkah saya menggunakan pustaka pencatatan milik saya sendiri guna membuat 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 lebih lanjut, lihat dokumentasi kami.

T: Apa saja lingkungan JVM yang digunakan Lambda untuk menjalankan fungsi saya?

Lambda menggunakan build Amazon Linux openjdk 1.8.

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 lebih lanjut, lihat dokumentasi kami.

Fungsi AWS Lambda di Python

T: Dapatkah saya menggunakan paket Python dengan AWS Lambda?

Ya. Anda dapat menggunakan pip untuk menginstal paket Python apa pun yang diperlukan.

Fungsi AWS Lambda di C#

T: Bagaimana cara mengemas dan menerapkan fungsi AWS Lambda di C#?

Anda dapat membuat fungsi Lambda C# menggunakan IDE Visual Studio dengan memilih "Terbitkan ke AWS Lambda" di Solution Explorer. Atau, Anda dapat langsung menjalankan perintah "dotnet lambda publish" dari dotnet CLI yang memiliki [patch alat # Lambda CLI] terinstal, yang membuat ZIP kode sumber C# Anda bersama dengan semua dependensi NuGet serta rakitan DLL yang Anda publikasikan sendiri, dan secara otomatis mengunggahnya ke AWS Lambda menggunakan parameter runtime “dotnetcore1.0”

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.

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 penerapan PowerShell Lambda Anda.
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 penerapan PowerShell Lambda Anda.

Fungsi AWS Lambda di Go

T: Bagaimana cara mengemas dan menerapkan fungsi AWS Lambda dalam 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 di Ruby

T: Bagaimana cara menyebarkan kode fungsi AWS Lambda yang tertulis dalam Ruby? 

Untuk menyebarkan fungsi Lambda yang tertulis dalam Ruby, cukup kemas kode Ruby dan permata Anda sebagai ZIP. Anda dapat mengunggah ZIP dari lingkungan lokal, atau menentukan lokasi Amazon S3 tempat file ZIP berada.

Topik lainnya

T: Versi mana dari 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?

AWS Lambda terintegrasi dengan AWS CloudTrail. AWS CloudTrail dapat merekam dan menyampaikan file log ke bucket Amazon S3 yang mendeskripsikan penggunaan API akun Anda.

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 untuk detail selengkapnya.

T: Apakah AWS Lambda mendukung Advanced Vector Extensions 2 (AVX2)?

Ya, AWS Lambda mendukung set petunjuk Advanced Vector Extensions 2 (AVX2). Untuk mempelajari selengkapnya tentang cara menyusun kode aplikasi Anda untuk menargetkan set instruksi ini bagi performa yang ditingkatkan, baca dokumentasi pengembang AWS Lambda.

Pelajari selengkapnya tentang harga AWS Lambda

Kunjungi halaman harga
Siap untuk memulai?
Daftar
Ada pertanyaan lagi?
Hubungi kami