Buat fungsi Lambda pertama Anda - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat fungsi Lambda pertama Anda

Untuk memulai Lambda, gunakan konsol Lambda untuk membuat fungsi. Dalam beberapa menit, Anda dapat membuat dan menerapkan fungsi dan mengujinya di konsol.

Saat Anda menjalankan tutorial, Anda akan mempelajari beberapa konsep dasar Lambda, seperti cara meneruskan argumen ke fungsi Anda menggunakan objek acara Lambda. Anda juga akan mempelajari cara mengembalikan output log dari fungsi Anda, dan cara melihat log pemanggilan fungsi Anda di Log. CloudWatch

Agar semuanya tetap sederhana, Anda membuat fungsi Anda menggunakan runtime Python atau Node.js. Dengan bahasa yang ditafsirkan ini, Anda dapat mengedit kode fungsi langsung di editor kode bawaan konsol. Dengan bahasa yang dikompilasi seperti Java dan C#, Anda perlu membuat paket penerapan di mesin build lokal Anda dan mengunggahnya ke Lambda. Untuk mempelajari tentang penerapan fungsi ke Lambda menggunakan runtime lain, lihat tautan di bagian. Sumber daya tambahan dan langkah selanjutnya

Tip

Untuk mempelajari cara membuat solusi tanpa server, lihat Panduan Pengembang Tanpa Server.

Prasyarat

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

Untuk mendaftar untuk Akun AWS
  1. Buka https://portal.aws.amazon.com/billing/pendaftaran.

  2. Ikuti petunjuk online.

    Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.

    Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.

AWS mengirimi Anda email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/ dan memilih Akun Saya.

Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.

Amankan Anda Pengguna root akun AWS
  1. Masuk ke AWS Management Consolesebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

    Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.

  2. Aktifkan otentikasi multi-faktor (MFA) untuk pengguna root Anda.

    Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan IAM Pengguna.

Buat pengguna dengan akses administratif
  1. Aktifkan Pusat IAM Identitas.

    Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .

  2. Di Pusat IAM Identitas, berikan akses administratif ke pengguna.

    Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.

Masuk sebagai pengguna dengan akses administratif
  • Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.

    Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.

Tetapkan akses ke pengguna tambahan
  1. Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

    Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.

  2. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

    Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.

Membuat fungsi Lambda dengan konsol

Dalam contoh ini, fungsi Anda mengambil JSON objek yang berisi dua nilai integer berlabel "length" dan. "width" Fungsi ini mengalikan nilai-nilai ini untuk menghitung area dan mengembalikan ini sebagai JSON string.

Fungsi Anda juga mencetak area yang dihitung, bersama dengan nama grup CloudWatch lognya. Kemudian dalam tutorial, Anda akan belajar menggunakan CloudWatch Log untuk melihat catatan pemanggilan fungsi Anda.

Untuk membuat fungsi Anda, pertama-tama Anda menggunakan konsol untuk membuat fungsi Hello world dasar. Pada langkah berikut, Anda kemudian menambahkan kode fungsi Anda sendiri.

Untuk membuat fungsi Hello world Lambda dengan konsol
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih Buat fungsi.

  3. Pilih Penulis dari awal.

  4. Di panel Informasi dasar, untuk nama Fungsi masukkanmyLambdaFunction.

  5. Untuk Runtime, pilih Node.js 20.x atau Python 3.12

  6. Biarkan arsitektur diatur ke x86_64 dan pilih Create function.

Lambda menciptakan fungsi yang mengembalikan pesan Hello from Lambda! Lambda juga menciptakan peran eksekusi untuk fungsi Anda. Peran eksekusi adalah peran AWS Identity and Access Management (IAM) yang memberikan izin fungsi Lambda untuk Layanan AWS mengakses dan sumber daya. Untuk fungsi Anda, peran yang dibuat Lambda memberikan izin dasar untuk menulis ke Log. CloudWatch

Anda sekarang menggunakan editor kode bawaan konsol untuk mengganti kode Hello world yang dibuat Lambda dengan kode fungsi Anda sendiri.

Node.js
Untuk memodifikasi kode di konsol
  1. Pilih tab Kode.

    Di editor kode bawaan konsol, Anda akan melihat kode fungsi yang dibuat Lambda. Jika Anda tidak melihat tab index.mjs di editor kode, pilih index.mjs di file explorer seperti yang ditunjukkan pada diagram berikut.

    Diagram yang menunjukkan editor kode konsol dan file index.mjs di file explorer
  2. Tempelkan kode berikut ke tab index.mjs, ganti kode yang dibuat Lambda.

    export const handler = async (event, context) => { const length = event.length; const width = event.width; let area = calculateArea(length, width); console.log(`The area is ${area}`); console.log('CloudWatch log group: ', context.logGroupName); let data = { "area": area, }; return JSON.stringify(data); function calculateArea(length, width) { return length * width; } };
  3. Pilih Deploy untuk memperbarui kode fungsi Anda. Ketika Lambda telah menerapkan perubahan, konsol menampilkan spanduk yang memberi tahu Anda bahwa itu berhasil memperbarui fungsi Anda.

Memahami kode fungsi Anda

Sebelum Anda pindah ke langkah berikutnya, mari kita luangkan waktu sejenak untuk melihat kode fungsi dan memahami beberapa konsep Lambda utama.

  • Pawang Lambda:

    Fungsi Lambda Anda berisi fungsi Node.js bernama. handler Fungsi Lambda di Node.js dapat berisi lebih dari satu fungsi Node.js, tetapi fungsi handler selalu menjadi titik masuk ke kode Anda. Ketika fungsi Anda dipanggil, Lambda menjalankan metode ini.

    Saat Anda membuat fungsi Hello world menggunakan konsol, Lambda secara otomatis menyetel nama metode handler untuk fungsi Anda. handler Pastikan untuk tidak mengedit nama fungsi Node.js ini. Jika Anda melakukannya, Lambda tidak akan dapat menjalankan kode Anda ketika Anda menjalankan fungsi Anda.

    Untuk mempelajari selengkapnya tentang penangan Lambda di Node.js, lihat. Tentukan penangan fungsi Lambda di Node.js

  • Objek acara Lambda:

    Fungsi ini handler mengambil dua argumen, event dancontext. Peristiwa di Lambda adalah dokumen yang JSON diformat yang berisi data untuk fungsi Anda untuk diproses.

    Jika fungsi Anda dipanggil oleh yang lain Layanan AWS, objek acara berisi informasi tentang peristiwa yang menyebabkan pemanggilan. Misalnya, jika bucket Amazon Simple Storage Service (Amazon S3) memanggil fungsi Anda saat objek diunggah, acara tersebut akan berisi nama bucket Amazon S3 dan kunci objek.

    Dalam contoh ini, Anda akan membuat acara di konsol dengan memasukkan dokumen yang JSON diformat dengan dua pasangan nilai kunci.

  • Objek konteks Lambda:

    Argumen kedua yang diambil fungsi Anda adalahcontext. Lambda meneruskan objek konteks ke fungsi Anda secara otomatis. Objek konteks berisi informasi tentang fungsi pemanggilan dan lingkungan eksekusi.

    Anda dapat menggunakan objek konteks untuk menampilkan informasi tentang pemanggilan fungsi Anda untuk tujuan pemantauan. Dalam contoh ini, fungsi Anda menggunakan logGroupName parameter untuk menampilkan nama grup CloudWatch lognya.

    Untuk mempelajari lebih lanjut tentang objek konteks Lambda di Node.js, lihat. Menggunakan objek konteks Lambda untuk mengambil informasi fungsi Node.js

  • Masuk ke Lambda:

    Dengan Node.js, Anda dapat menggunakan metode konsol seperti console.log dan console.error untuk mengirim informasi ke log fungsi Anda. Kode contoh menggunakan console.log pernyataan untuk menampilkan area terhitung dan nama grup CloudWatch Log fungsi. Anda juga dapat menggunakan pustaka logging apa pun yang menulis ke stdout ataustderr.

    Untuk mempelajari selengkapnya, lihat Log dan pantau fungsi Node.js Lambda. Untuk mempelajari tentang login di runtime lain, lihat halaman 'Membangun dengan' untuk runtime yang Anda minati.

Python
Untuk memodifikasi kode di konsol
  1. Pilih tab Kode.

    Di editor kode bawaan konsol, Anda akan melihat kode fungsi yang dibuat Lambda. Jika Anda tidak melihat tab lambda_function.py di editor kode, pilih lambda_function.py di file explorer seperti yang ditunjukkan pada diagram berikut.

    Diagram yang menunjukkan editor kode konsol dan file lambda_function.py di file explorer
  2. Tempelkan kode berikut ke tab lambda_function.py, ganti kode yang dibuat Lambda.

    import json import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # Get the length and width parameters from the event object. The # runtime converts the event object to a Python dictionary length = event['length'] width = event['width'] area = calculate_area(length, width) print(f"The area is {area}") logger.info(f"CloudWatch logs group: {context.log_group_name}") # return the calculated area as a JSON string data = {"area": area} return json.dumps(data) def calculate_area(length, width): return length*width
  3. Pilih Deploy untuk memperbarui kode fungsi Anda. Ketika Lambda telah menerapkan perubahan, konsol menampilkan spanduk yang memberi tahu Anda bahwa itu berhasil memperbarui fungsi Anda.

Memahami kode fungsi Anda

Sebelum Anda pindah ke langkah berikutnya, mari kita luangkan waktu sejenak untuk melihat kode fungsi dan memahami beberapa konsep Lambda utama.

  • Pawang Lambda:

    Fungsi Lambda Anda berisi fungsi Python bernama. lambda_handler Fungsi Lambda di Python dapat berisi lebih dari satu fungsi Python, tetapi fungsi handler selalu menjadi titik masuk ke kode Anda. Ketika fungsi Anda dipanggil, Lambda menjalankan metode ini.

    Saat Anda membuat fungsi Hello world menggunakan konsol, Lambda secara otomatis menyetel nama metode handler untuk fungsi Anda. lambda_handler Pastikan untuk tidak mengedit nama fungsi Python ini. Jika Anda melakukannya, Lambda tidak akan dapat menjalankan kode Anda ketika Anda menjalankan fungsi Anda.

    Untuk mempelajari selengkapnya tentang penangan Lambda dengan Python, lihat. Tentukan penangan fungsi Lambda dengan Python

  • Objek acara Lambda:

    Fungsi ini lambda_handler mengambil dua argumen, event dancontext. Peristiwa di Lambda adalah dokumen yang JSON diformat yang berisi data untuk fungsi Anda untuk diproses.

    Jika fungsi Anda dipanggil oleh yang lain Layanan AWS, objek acara berisi informasi tentang peristiwa yang menyebabkan pemanggilan. Misalnya, jika bucket Amazon Simple Storage Service (Amazon S3) memanggil fungsi Anda saat objek diunggah, acara tersebut akan berisi nama bucket Amazon S3 dan kunci objek.

    Dalam contoh ini, Anda akan membuat acara di konsol dengan memasukkan dokumen yang JSON diformat dengan dua pasangan nilai kunci.

  • Objek konteks Lambda:

    Argumen kedua yang diambil fungsi Anda adalahcontext. Lambda meneruskan objek konteks ke fungsi Anda secara otomatis. Objek konteks berisi informasi tentang fungsi pemanggilan dan lingkungan eksekusi.

    Anda dapat menggunakan objek konteks untuk menampilkan informasi tentang pemanggilan fungsi Anda untuk tujuan pemantauan. Dalam contoh ini, fungsi Anda menggunakan log_group_name parameter untuk menampilkan nama grup CloudWatch lognya.

    Untuk mempelajari lebih lanjut tentang objek konteks Lambda dengan Python, lihat. Menggunakan objek konteks Lambda untuk mengambil informasi fungsi Python

  • Masuk ke Lambda:

    Dengan Python, Anda dapat menggunakan print pernyataan atau pustaka logging Python untuk mengirim informasi ke log fungsi Anda. Untuk mengilustrasikan perbedaan dalam apa yang ditangkap, kode contoh menggunakan kedua metode. Dalam aplikasi produksi, kami menyarankan Anda menggunakan pustaka logging.

    Untuk mempelajari selengkapnya, lihat Log dan pantau fungsi Python Lambda. Untuk mempelajari tentang login di runtime lain, lihat halaman 'Membangun dengan' untuk runtime yang Anda minati.

Memanggil fungsi Lambda menggunakan konsol

Untuk menjalankan fungsi Anda menggunakan konsol Lambda, pertama-tama Anda membuat acara pengujian untuk dikirim ke fungsi Anda. Acara ini adalah dokumen JSON diformat yang berisi dua pasangan kunci-nilai dengan kunci dan. "length" "width"

Untuk membuat acara pengujian
  1. Di panel Sumber kode, pilih Uji.

  2. Pilih Buat acara baru.

  3. Untuk nama Acara masukkanmyTestEvent.

  4. Di JSON panel Event, ganti nilai default dengan menempelkan berikut ini:

    { "length": 6, "width": 7 }
  5. Pilih Simpan.

Anda sekarang menguji fungsi Anda dan menggunakan konsol Lambda dan CloudWatch Log untuk melihat catatan pemanggilan fungsi Anda.

Untuk menguji fungsi Anda dan melihat catatan pemanggilan di konsol
  • Di panel Sumber kode, pilih Uji. Ketika fungsi Anda selesai berjalan, Anda akan melihat log respons dan fungsi ditampilkan di tab Hasil eksekusi. Anda akan melihat hasil yang mirip dengan berikut ini.

    Node.js
    Test Event Name myTestEvent Response "{\"area\":42}" Function Logs START RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Version: $LATEST 2023-08-31T23:39:45.313Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2023-08-31T23:39:45.331Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a REPORT RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Duration: 20.67 ms Billed Duration: 21 ms Memory Size: 128 MB Max Memory Used: 66 MB Init Duration: 163.87 ms Request ID 5c012b0a-18f7-4805-b2f6-40912935034a
    Python
    Test Event Name myTestEvent Response "{\"area\": 42}" Function Logs START RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Version: $LATEST The area is 42 [INFO] 2023-08-31T23:43:26.428Z 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b CloudWatch logs group: /aws/lambda/myLambdaFunction END RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b REPORT RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Duration: 1.42 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 39 MB Init Duration: 123.74 ms Request ID 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b

Dalam contoh ini, Anda memanggil kode menggunakan fitur pengujian konsol. Ini berarti Anda dapat melihat hasil eksekusi fungsi Anda secara langsung di konsol. Saat fungsi Anda dipanggil di luar konsol, Anda perlu menggunakan CloudWatch Log.

Untuk melihat catatan pemanggilan fungsi Anda di Log CloudWatch
  1. Buka halaman Grup log CloudWatch konsol.

  2. Pilih grup log untuk fungsi Anda (/aws/lambda/myLambdaFunction). Ini adalah nama grup log yang fungsi Anda cetak ke konsol.

  3. Di tab Log streams, pilih aliran log untuk pemanggilan fungsi Anda.

    Anda akan melihat output yang serupa dengan yang berikut:

    Node.js
    INIT_START Runtime Version: nodejs:20.v13 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:e3aaabf6b92ef8755eaae2f4bfdcb7eb8c4536a5e044900570a42bdba7b869d9 START RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Version: $LATEST 2023-08-23T22:04:15.809Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2023-08-23T22:04:15.810Z aba6c0fc-cf99-49d7-a77d-26d805dacd20 INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 REPORT RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Duration: 17.77 ms Billed Duration: 18 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 178.85 ms
    Python
    INIT_START Runtime Version: python:3.12.v16 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:ca202755c87b9ec2b58856efb7374b4f7b655a0ea3deb1d5acc9aee9e297b072 START RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e Version: $LATEST The area is 42 [INFO] 2023-09-01T00:05:22.464Z 9315ab6b-354a-486e-884a-2fb2972b7d84 CloudWatch logs group: /aws/lambda/myLambdaFunction END RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e REPORT RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e Duration: 1.15 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 40 MB

Bersihkan

Ketika Anda selesai bekerja dengan fungsi contoh, hapus itu. Anda juga dapat menghapus grup log yang menyimpan log fungsi, dan peran eksekusi yang dibuat konsol.

Untuk menghapus fungsi Lambda
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pilih Tindakan, Hapus.

  4. Di kotak dialog Hapus fungsi, masukkan hapus, lalu pilih Hapus.

Untuk menghapus grup log
  1. Buka halaman Grup log CloudWatch konsol.

  2. Pilih grup log fungsi (/aws/lambda/my-function).

  3. Pilih Tindakan, Hapus grup log.

  4. Di kotak dialog Hapus grup log, pilih Hapus.

Untuk menghapus peran eksekusi
  1. Buka halaman Peran pada konsol AWS Identity and Access Management (IAM).

  2. Pilih peran eksekusi fungsi (misalnya,myLambdaFunction-role-31exxmpl).

  3. Pilih Hapus.

  4. Di kotak dialog Hapus peran, masukkan nama peran lalu pilih Hapus.

Anda dapat mengotomatiskan pembuatan dan pembersihan fungsi, grup log, dan peran dengan AWS CloudFormation dan AWS Command Line Interface ()AWS CLI.

Sumber daya tambahan dan langkah selanjutnya

Sekarang Anda telah membuat dan menguji fungsi Lambda sederhana menggunakan konsol, ambil langkah berikut: