Proyek di AWS

Buat Aplikasi Web Modern

Menerapkan aplikasi web, menghubungkan ke database, dan menganalisis perilaku pengguna.

Modul 3: Menyimpan Informasi Mysfit

Dalam modul ini Anda akan membuat Amazon DynamoDB untuk menyimpan informasi mysfit dalam tabel database sentral.

Ikhtisar

Sekarang setelah Anda memiliki layanan yang diterapkan dan jalur CI/CD yang berfungsi untuk mengirimkan perubahan pada layanan itu secara otomatis kapan pun Anda memperbarui repositori kode, Anda dapat memindahkan fitur aplikasi baru dengan cepat dari pengonsepan menjadi tersedia bagi pelanggan Mythical Mysfits Anda. Dengan peningkatan kehebatan ini, mari kita tambahkan bagian fungsi mendasar lainnya pada arsitektur situs web Mythical Mysfits, sebuah tingkat data.

Dalam modul ini Anda akan membuat sebuah tabel dalam Amazon DynamoDB, sebuah layanan database NoSQL yang terkelola dan dapat dikembangkan di AWS dengan kinerja luar biasa cepat. Alih-alih menyimpan seluruh Mysfits di file JSON statis, kita akan menyimpannya di dalam database untuk membuat masa depan situs web dapat lebih diperluas dan dikembangkan.

Diagram Arsitektur

fargate dan diagram lengkung dynamodb

 Waktu Penyelesaian

20 menit

 Layanan yang Digunakan

Instruksi Implementasi

  • A: Membuat Tabel DynamoDB

    Untuk menambahkan tabel DynamoDB pada arsitektur, kita telah memasukkan file input JSON CLI yang menentukan sebuah tabel bernama MysfitsTable. Tabel ini akan memiliki indeks utama yang ditentukan oleh atribut kunci hash bernama MysfitId dan dua indeks sekunder lain. Indeks sekunder pertama akan memiliki kunci hash Jenis dan serangkaian kunci MysfitId, dan indeks sekunder kedua akan memiliki kunci hash Penyelarasan dan serangkaian kunci MysfitId.

    Kedua indeks sekunder ini akan memungkinkan kita untuk mengeksekusi kueri terhadap tabel untuk mengambil semua mysfits yang cocok dengan Jenis atau Penyelarasan tertentu untuk mengaktifkan fungsi filter yang mungkin Anda amati tidak berfungsi di situs web. Anda dapat melihat file ini di ~/environment/aws-modern-application-workshop/module-3/aws-cli/dynamodb-table.json. Anda tidak perlu melakukan perubahan pada file ini dan file ini siap untuk dieksekusi. Untuk mempelajari selengkapnya tentang indeks di DynamoDB dan konsep inti lain, kunjungi halaman ini. 

    Untuk membuat tabel menggunakan CLI AWS, eksekusi perintah berikut di terminal Cloud9:

    aws dynamodb create-table --cli-input-json file://~/environment/aws-modern-application-workshop/module-3/aws-cli/dynamodb-table.json

    Setelah perintah dijalankan, Anda dapat melihat detail tabel yang baru saja dibuat dengan mengeksekusi perintah CLI AWS berikut di terminal:

    aws dynamodb describe-table --table-name MysfitsTable

    Jika kita mengeksekusi perintah berikut untuk mengambil semua item yang disimpan di tabel, Anda akan melihat bahwa tabel tersebut kosong:

    aws dynamodb scan --table-name MysfitsTable
    {
        "Count": 0,
        "Items": [],
        "ScannedCount": 0,
        "ConsumedCapacity": null
    }
    B: Tambahkan Item pada Tabel DynamoDB

    File JSON juga disediakan yang dapat digunakan untuk penyisipan berkelompok jumlah item Mysfit ke dalam tabel ini. Hal ini akan dicapai melalui DynamoDB API BatchWriteItem.

    Untuk memanggil API ini menggunakan file JSON yang disediakan, eksekusi perintah terminal berikut (respons dari layanan harus melaporkan bahwa tidak terdapat item yang tidak diproses):

    aws dynamodb batch-write-item --request-items file://~/environment/aws-modern-application-workshop/module-3/aws-cli/populate-dynamodb.json

    Sekarang, jika Anda menjalankan perintah yang sama untuk memindai semua isi tabel, Anda akan menemukan item yang telah dimuat ke dalam tabel:

    aws dynamodb scan --table-name MysfitsTable
  • A: Salin Kode Layanan Flask yang Diperbarui

    Sekarang setelah kita mencantumkan data ke dalam tabel, mari kita ubah kode aplikasi untuk membacanya dari tabel alih-alih mengembalikan file JSON statis yang digunakan dalam Modul 2. Kami telah memasukkan sekumpulan file Python baru untuk layanan mikro Flask Anda, namun kini kita akan meminta DynamoDB alih-alih membaca file JSON statis.

    Permintaan ini dibentuk menggunakan Python SDK AWS bernama boto3. SDK ini adalah cara tangguh namun sederhana untuk berinteraksi dengan layanan AWS melalui kode Python. Kit ini memungkinkan Anda untuk menggunakan definisi dan fungsi klien layanan yang sangat sesuai dengan API AWS dan perintah CLI yang telah Anda eksekusi sebagai bagian dari lokakarya ini. Menerjemahkan perintah tersebut untuk berfungsi dengan kode Python mudah dilakukan ketika menggunakan boto3.

    Untuk menyalin file baru ke direktori repositori CodeCommit Anda, eksekusi perintah berikut di terminal:

    cp ~/environment/aws-modern-application-workshop/module-3/app/service/* ~/environment/MythicalMysfitsService-Repository/service/
    B: Salin Kode Layanan Flask yang Diperbarui

    Sekarang, kita perlu memeriksa perubahan kode ini pada CodeCommit menggunakan klien baris perintah git.

    Jalankan perintah berikut untuk memeriksa perubahan kode baru dan memulai jalur CI/CD Anda:

    cd ~/environment/MythicalMysfitsService-Repository
    git add .
    git commit -m "Add new integration to DynamoDB."
    git push

    Sekarang, hanya dalam waktu 5-10 menit Anda akan melihat perubahan kode berhasil memasuki seluruh jalur CI/CD di CodePipeline dan keluar ke layanan Flask yang diterapkan ke Fargate AWS di Amazon ECS.

    Anda bebas menjelajahi konsol AWS CodePipeline untuk melihat kemajuan perubahan di seluruh jalur.

  • Terakhir, kita harus memublikasikan halaman index.html baru ke bucket S3 sehingga fungsi API baru tersebut yang menggunakan string kueri untuk menyaring respons akan digunakan. File index.html baru terletak di ~/environment/aws-modern-application-workshop/module-3/web/index.html.

    Buka file ini di Cloud9 IDE Anda dan ganti string yang menunjukkan “REPLACE_ME” seperti yang Anda lakukan dalam Modul 2 , dengan titik akhir NLB yang sesuai. Ingatlah untuk tidak mencantumkan jalur /mysfits.

    Lihat file yang telah Anda edit di direktori /module-2/ jika perlu. Setelah mengganti titik akhir dengan titik di NLB, unggah file index.html baru dengan Menjalankan perintah berikut (ganti dengan nama bucket yang Anda buat dalam Modul 1:

    aws s3 cp --recursive ~/environment/aws-modern-application-workshop/module-3/web/ s3://your_bucket_name_here/

    Kunjungi kembali situs web Mythical Mysfits Anda untuk melihat populasi baru Mysfits yang dimuat dari tabel DynamoDB Anda dan bagaimana fungsi Filter bekerja!

    Ini menyimpulkan modul 3.

Selanjutnya, atur registrasi pengguna.