Membangun Aplikasi Web Dasar

TUTORIAL

Modul 2: Membangun Fungsi Nirserver

Di modul ini, Anda akan membangun fungsi nirserver dengan menggunakan AWS Lambda

Gambaran Umum

Dalam modul ini, Anda akan menulis sepenggal kecil kode, dalam Python, JavaScript, atau Java, untuk digunakan dalam modul selanjutnya untuk menambahkan interaktivitas di halaman web Anda. Anda akan menggunakan AWS Lambda, yaitu layanan komputasi yang memungkinkan Anda untuk membuat fungsi nirserver, sehingga Anda tidak perlu mengelola perangkat lunak dan perangkat keras. Alih-alih, aplikasi dipecah menjadi fungsi-fungsi individual yang dapat diinvokasi dan diskalakan secara individual.

Fungsi nirserver ini dipicu berdasarkan peristiwa tertentu yang akan Anda tentukan pada kode. Layanan ini juga yang sangat terjangkau, karena Anda hanya dikenai biaya untuk jumlah peristiwa yang Anda proses, bukan waktu idle. Lebih dari semua itu, Anda tidak perlu mengkhawatirkan pengelolaan server apa pun.

Hal-hal yang akan Anda capai

Dalam modul ini, Anda akan:

  • Membuat fungsi Lambda dari awal dengan menggunakan konsol AWS (dalam Python, JavaScript, atau Java)
  • Membuat peristiwa (JSON) di konsol AWS untuk menguji fungsi Anda

Konsep utama

Layanan Komputasi – Layanan yang menyediakan daya pemrosesan komputasi.

Fungsi nirserver – Sepenggal kode yang akan dieksekusi oleh layanan komputasi, sesuai permintaan.

Pemicu Lambda – Jenis peristiwa yang akan membuat fungsi Lambda (nirserver) berjalan. Peristiwa ini dapat berupa layanan AWS lain atau input eksternal.

 Waktu penyelesaian minimum

5 menit

 Layanan yang digunakan

 Terakhir diperbarui

4 April 2023

Implementasi

    • Python
      1. Di tab peramban baru, masuklah ke Konsol AWS Lambda.
      2. Pastikan Anda membuat fungsi di Wilayah yang sama tempat Anda membuat aplikasi web di modul sebelumnya. Anda dapat melihat ini di bagian paling atas halaman, di sebelah nama akun Anda.
      3. Pilih tombol oranye Buat Fungsi.
      4. Di bawah Nama fungsi, masukkan HelloWorldFunction.
      5. Pilih Python 3.8 dari menu tarik-turun runtime dan biarkan sisa default tidak berubah.

      6. Pilih tombol oranye Buat Fungsi.

      7. Anda akan melihat kotak hijau di bagian atas layar dengan pesan sebagai berikut “Berhasil membuat fungsi HelloWorldFunction.”

      8. Pada Sumber kode, ganti kode di lambda_function.py dengan yang berikut ini:

      # import the JSON utility package since we will be working with a JSON object
      import json
      # define the handler function that the Lambda service will use as an entry point
      def lambda_handler(event, context):
      # extract values from the event object we got from the Lambda service
          name = event['firstName'] +' '+ event['lastName']
      # return a properly formatted JSON object
          return {
          'statusCode': 200,
          'body': json.dumps('Hello from Lambda, ' + name)
          }

      9. Simpan dengan membuka menu file dan memilih Simpan untuk menyimpan perubahan.

      10. Pilih Deploy untuk men-deploy perubahan.

      11. Mari uji fungsi baru kita. Pilih tombol Uji berwarna oranye untuk membuat peristiwa pengujian dengan memilih Konfigurasikan peristiwa pengujian.

      12. Pada Nama peristiwa, masukkan HelloWorldTestEvent.

      13. Salin dan tempel objek JSON berikut untuk menggantikan default:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Pilih tombol Simpan di bagian bawah halaman.

    • JavaScript
      1. Di tab peramban baru, masuklah ke Konsol AWS Lambda.
      2. Pastikan Anda membuat fungsi di Wilayah yang sama tempat Anda membuat aplikasi web di modul sebelumnya. Anda dapat melihat ini di bagian paling atas halaman, di sebelah nama akun Anda.
      3. Pilih tombol oranye Buat Fungsi.
      4. Di bawah Nama fungsi, masukkan HelloWorldFunction.
      5. Pilih Node.js 16.x dari menu tarik-turun runtime dan biarkan sisa default tidak berubah.

      6. Pilih tombol oranye Buat Fungsi.

      7. Anda akan melihat kotak hijau di bagian atas layar dengan pesan sebagai berikut “Berhasil membuat fungsi HelloWorldFunction.”

      8. Pada Sumber kode, ganti kode di index.js dengan yang berikut ini:

      // Define handler function, the entry point to our code for the Lambda service
      // We receive the object that triggers the function as a parameter
      exports.handler = async (event) => {
          // Extract values from event and format as strings
          let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
          // Create a JSON object with our response and store it in a constant
          const response = {
              statusCode: 200,
              body: name
          };
          // Return the response constant
          return response;
      };

      9. Pilih tombol Deploy yang terletak di sebelah tombol Uji berwarna oranye di bagian atas editor kode.

      10. Pilih tombol Uji berwarna oranye yang terletak di bagian atas editor kode.

      11. Pada Nama peristiwa, masukkan HelloWorldTestEvent.

      12. Salin dan tempel objek JSON berikut untuk menggantikan default:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      13. Pilih tombol Simpan untuk membuat peristiwa pengujian.

      14. Pilih lagi tombol Uji berwarna oranye untuk menjalankan peristiwa pengujian. Hasilnya akan ditampilkan di bagian Hasil eksekusi editor kode.

    • Java
      1. Di tab peramban baru, masuklah ke Konsol AWS Lambda.
      2. Pastikan Anda membuat fungsi di Wilayah yang sama tempat Anda membuat aplikasi web di modul sebelumnya. Anda dapat melihat ini di bagian paling atas halaman, di sebelah nama akun Anda.
      3. Pilih tombol oranye Buat Fungsi.
      4. Di bawah Nama fungsi, masukkan HelloWorldFunction.
      5. Pilih Java 11 (Corretto) dari menu tarik-turun runtime dan biarkan sisa default tidak berubah.

      6. Pilih tombol oranye Buat Fungsi.

      7. Anda akan melihat kotak hijau di bagian atas layar dengan pesan sebagai berikut “Berhasil membuat fungsi HelloWorldFunction.”

      8. Anda sekarang telah membuat fungsi Lambda dengan kelas penangan bernama Hello. Karena Java merupakan kompilasi bahasa, Anda tidak dapat melihat atau mengedit kode sumber di konsol Lambda, tetapi Anda dapat memodifikasi konfigurasinya, menginvokasinya, dan mengonfigurasi pemicu.

      9. Untuk memperbarui kode fungsi, Anda harus membuat paket deployment, yang bisa berupa file JAR atau arsip ZIP yang berisi kode fungsi Anda. Untuk keperluan tutorial ini, kami telah menyediakan file JAR yang bisa diunduh dengan kode fungsi yang diperbarui.

      10. Kunjungi Kode fungsi dan unggah file JAR.

      11. Perbarui Penangan menjadi com.example.app.LambdaRequestHandler::handleRequest.

      12. Pilih tombol oranye Simpan di bagian atas layar Anda.

      13. Pilihlah Pilih peristiwa pengujian di bagian atas layar untuk menguji fungsi baru tersebut.

      14. Dari menu tarik-turun tersebut, pilih Konfigurasikan peristiwa pengujian.

      15. Pada Nama peristiwa, masukkan HelloWorldTestEvent.

      16. Salin dan tempel objek JSON berikut untuk menggantikan default:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17. Pilih tombol oranye Buat di bagian bawah halaman.

    1. Pada bagian HelloWorldFunction di bagian atas halaman, pilih tab Uji.
    2. Anda akan melihat kotak hijau muda di bagian atas halaman dengan teks berikut: Hasil eksekusi: berhasil. Anda dapat mengeklik Perincian untuk melihat peristiwa yang fungsinya dikembalikan.
    3. Bagus sekali! Fungsi Lambda Anda kini bekerja.

Arsitektur aplikasi

Setelah kita menyelesaikan modul ini, arsitektur kita akan terlihat seperti ini:

Diagram arsitektur yang menunjukkan AWS Amplify dan AWS Lambda yang di-hosting di AWS Cloud, dengan koneksi ke pengguna eksternal dari Amplify.

Anda akan melihat kita telah menambahkan layanan AWS Lambda ke diagram, tetapi belum memiliki koneksi ke AWS Amplify atau pengguna kita. Kita akan membangun itu di modul selanjutnya.

Apakah halaman ini membantu?

Menautkan Fungsi Nirserver ke Aplikasi Web