Dalam modul ini Anda akan menggunakan AWS Lambda dan Amazon DynamoDB untuk membangun proses ujung belakang untuk menangani permintaan untuk aplikasi web Anda. Aplikasi browser yang Anda menerapkan dalam modul pertama memungkinkan pengguna untuk meminta unicorn dikirim ke lokasi pilihan mereka. Untuk memenuhi permintaan tersebut, JavaScript yang berjalan di browser harus meminta layanan yang berjalan di cloud.

Serverless_Web_App_LP_assets-04

Anda akan mengimplementasikan fungsi Lambda yang akan dipanggil setiap saat pengguna meminta unicorn. Fungsi ini akan memilih unicorn dari armada, mencatat permintaan dalam tabel DynamoDB dan kemudian menanggapi aplikasi ujung depan dengan perincian tentang unicorn yang dikirim.

Fungsi ini dipanggil dari browser menggunakan Amazon API Gateway. Anda akan mengimplementasikan koneksi itu di modul berikutnya. Untuk modul ini Anda hanya akan menguji fungsi dalam isolasi.

Waktu untuk Menyelesaikan Modul: 30 Menit

Layanan yang digunakan: AWS Lambda, Amazon DynamoDB


Ikuti instruksi langkah demi langkah di bawah ini untuk membuat ujung belakang tanpa server. Klik setiap nomor langkah untuk memperluas bagian.

  • Langkah 1. Buat Tabel Amazon DynamoDB

    Gunakan konsol Amazon DynamoDB untuk membuat tabel DynamoDB yang baru. Panggil Perjalanan tabel Anda dan beri kunci partisi yang disebut RideId dengan jenis String. Nama tabel dan kunci partisi peka huruf besar/kecil. Pastikan Anda menggunakan ID yang tepat yang disediakan. Gunakan default untuk semua pengaturan lainnya.

    Setelah Anda membuat tabel, catat ARN untuk penggunaan langkah berikutnya.


    1. Dari AWS Management Console pilih Layanan lalu pilih DynamoDB di bawah Database.

    2. Pilih Buat tabel.

    3. Masukkan Perjalanan untuk Nama Tabel. Kolom ini peka huruf besar/kecil.

    4. Masukkan RideId untuk Kunci partisi dan pilih String untuk jenis kunci. Kolom ini peka huruf besar/kecil.

    5. Centang kotak Gunakan pengaturan default dan pilih Buat.

    6. Gulir ke bawah bagian Ikhtisar tabel baru Anda dan catat ARN. Anda akan menggunakannya di bagian berikutnya.

  • Langkah 2. Buat Peran IAM untuk fungsi Lambda Anda

    Setiap fungsi Lambda memiliki peran IAM yang terkait. Peran ini menetapkan apa diizinkan oleh fungsi ini untuk berinteraksi dengan layanan AWS lainnya. Untuk keperluan lokakarya ini, Anda harus membuat peran IAM yang memberikan izin fungsi Lambda Anda untuk menulis log ke Amazon CloudWatch Logs dan akses untuk menulis item ke tabel DynamoDB Anda.

    Gunakan konsol IAM untuk membuat peran baru. Beri nama WildRydesLambda dan pilih AWS Lambda untuk jenis peran. Anda harus melampirkan kebijakan yang memberikan izin fungsi Anda untuk menulis ke Amazon CloudWatch Logs dan meletakkan item ke tabel DynamoDB Anda.

    Lampirkan kebijakan terkelola yang disebut AWSLambdaBasicExecutionRole ke peran ini untuk memberikan izin CloudWatch Logs yang diperlukan. Selain itu, buat kebijakan sebaris khusus untuk peran Anda yang memungkinkan tindakan ddb:PutItem untuk tabel yang Anda buat di bagian sebelumnya.


    1. Dari AWS Management Console, klik Layanan lalu pilih IAM di bagian Keamanan, Identitas & Kepatuhan.

    2. Pilih Peran di bilah navigasi kiri lalu pilih Buat Peran Baru.

    3. Pilih Lambda untuk jenis peran dari grup Layanan AWS, lalu klik Berikutnya: Izin.

      Catatan: Memilih jenis peran secara otomatis membuat kebijakan kepercayaan untuk peran Anda yang memungkinkan layanan AWS untuk mengambil peran ini atas nama Anda. Jika Anda membuat peran ini menggunakan CLI, AWS CloudFormation atau mekanisme lain, Anda akan menentukan kebijakan trust secara langsung.

    4. Mulai ketik AWSLambdaBasicExecutionRole di kotak teks Filter dan centang kotak di sebelah peran tersebut.

    5. Pilih Langkah Berikutnya.

    6. Masukkan WildRydesLambda untuk Nama Peran.

    7. Pilih Buat Peran.

    8. Ketik WildRydesLambda ke dalam kotak filter di halaman Peran dan pilih peran yang Anda baru buat.

    9. Pada tab Izin, pilih tautan Tambahkan kebijakan inline di sudut kanan bawah untuk membuat kebijakan inline baru.

    10. Pilih Pilih layanan.

    11. Mulai mengetik DynamoDB ke dalam kotak pencarian yang berlabel Cari layanan dan pilih DynamoDB saat muncul..

    12. Pilih Pilih tindakan.

    13. Mulailah mengetik PutItem ke dalam kotak pencarian berlabel Tindakan filter dan centang kotak di sebelah PutItem ketika muncul.

    14. Pilih bagian Sumber daya

    15. Dengan opsi Khusus terpilih, pilih tautan Tambahkan ARN di bagian tabel.

    16. Tempel ARN tabel yang Anda buat di bagian sebelumnya di bidang Tentukan ARN untuk tabel, dan pilih Tambahkan.

    17. Pilih Tinjau Kebijakan.

    18. Masukkan DynamoDBWriteAccess untuk nama kebijakan dan pilih Buat kebijakan.

  • Langkah 3. Buat Fungsi Lambda untuk Menangani Permintaan

    AWS Lambda akan menjalankan kode Anda untuk merespons kejadian seperti permintaan HTTP. Pada langkah ini Anda akan membangun fungsi inti yang akan memproses permintaan API dari aplikasi web untuk mengirim unicorn. Pada modul berikutnya Anda akan menggunakan Amazon API Gateway untuk membuat API RESTful yang akan memaparkan titik akhir HTTP yang dapat dipanggil dari browser pengguna Anda. Anda kemudian akan menghubungkan fungsi Lambda yang Anda buat pada langkah ini ke API itu untuk membuat ujung belakang yang berfungsi penuh untuk aplikasi web Anda.

    Gunakan konsol AWS Lambda untuk membuat fungsi Lambda baru bernama RequestUnicorn yang akan memproses permintaan API. Gunakan implementasi contoh requestUnicorn.js untuk kode fungsi Anda. Cukup salin dan rekatkan dari file ke dalam editor konsol AWS Lambda.

    Pastikan untuk mengonfigurasikan fungsi Anda untuk menggunakan peran IAM WildRydesLambda yang Anda buat di bagian sebelumnya.


    1. Pilih Layanan lalu pilih Lambda di bagian Komputasi.

    2. Pilih Buat fungsi.

    3. Tetap pilih kartu Penulis dari nol.

    4. Masukkan RequestUnicorn di bidang Nama.

    5. Pilih Node.js 6.10 untuk Runtime.

    6. Pastikan Pilih peran yang ada dipilih dari menu menurun Peran.

    7. Pilih WildRydesLambda dari menu menurun Peran yang Ada.

    8. Klik Buat fungsi.

    9. Gulir ke bawah ke bagian Kode fungsi dan ganti kode yang ada di editor kode index.js dengan isi requestunicorn.js.

    10. Klik “Simpan” di sudut kanan atas halaman.Klik setiap nomor langkah untuk memperluas bagian.

  • Langkah 4. Uji implementasi Anda

    Untuk modul ini Anda akan menguji fungsi yang Anda bangun menggunakan konsol AWS Lambda. Pada modul berikutnya Anda akan menambahkan REST API dengan API Gateway sehingga Anda dapat menjalankan fungsi Anda dari aplikasi berbasis browser yang Anda gunakan dalam modul pertama.


    1. Dari layar edit utama untuk fungsi Anda, pilih Konfigurasikan kejadian uji dari menu menurun Pilih kejadian uji...

    2. Buat kejadian uji baru tetap dipilih.

    3. Masukkan TestRequestEvent di bidang Nama Kejadian

    4. Salin dan rekatkan kejadian uji berikut ke dalam editor:

    {
        "path": "/ride",
        "httpMethod": "POST",
        "headers": {
            "Accept": "*/*",
            "Authorization": "eyJraWQiOiJLTzRVMWZs",
            "content-type": "application/json; charset=UTF-8"
        },
        "queryStringParameters": null,
        "pathParameters": null,
        "requestContext": {
            "authorizer": {
                "claims": {
                    "cognito:username": "the_username"
                }
            }
        },
        "body": "{\"PickupLocation\":{\"Latitude\":47.6174755835663,\"Longitude\":-122.28837066650185}}"
    }
    1. Klik Buat.

    2. Di layar edit utama klik Uji dengan TestRequestEvent yang dipilih di menu menurun.

    3. Gulir ke atas halaman dan perluas bagian Detail dari bagian Hasil pelaksanaan.

    4. Verifikasi bahwa pelaksanaan berhasil dan bahwa hasil fungsi tampak seperti di bawah ini:

    {
        "statusCode": 201,
        "body": "{\"RideId\":\"SvLnijIAtg6inAFUBRT+Fg==\",\"Unicorn\":{\"Name\":\"Rocinante\",\"Color\":\"Yellow\",\"Gender\":\"Female\"},\"Eta\":\"30 seconds\"}",
        "headers": {
            "Access-Control-Allow-Origin": "*"
        }
    }