Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur

Pusat Sumber Daya untuk Memulai

Pengantar Konsep Inti

Database Tanpa Server Kontainer Machine Learning Komputasi Penyimpanan

Pengembang Menyeluruh Developer Front-End Pembentuk Penggemar DevOps Engineer Developer Aplikasi Kecerdasan Buatan (AI) Data Scientist Analytics Dev Tertanam Administrator Database

Mulai Menggunakan AWS

Membangun Aplikasi Web Dasar

Menerapkan aplikasi web dan menambah interaktivitas dengan API dan database

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur
Pengantar

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur
Membuat situs web statis

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur
Membangun fungsi tanpa server

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur

Membuat tabel data

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur
menambah interaktivitas di situs web

Modul 4: Membuat Tabel Data

Di modul ini Anda akan membuat suatu tabel DynamoDB dan mengaktifkan fungsi Lambda untuk menyimpan data di situ.

Pengantar

Di modul ini, kita akan membuat tabel untuk menyimpan data menggunakan Amazon DynamoDB. DynamoDB adalah layanan database nilai-kunci, jadi kita tidak perlu membuat skema data. Kinerjanya konsisten pada skala apa pun dan tidak ada server yang harus dikelola saat menggunakannya.

Juga, kita akan gunakan layanan AWS Identity and Access Management (IAM) untuk secara aman memberikan izin yang diperlukan berbagai layanan untuk saling berinteraksi. Secara khusus, kita akan izinkan fungsi Lambda yang dibuat di Modul Dua untuk menulis ke tabel DynamoDB baru menggunakan kebijakan IAM. Untuk itu, kita akan menggunakan AWS SDK (Python, JavaScript, atau Java) dari fungsi Lambda kita.

Apa yang Akan Anda Pelajari

  • Membuat tabel DynamoDB menggunakan AWS Management Console
  • Membuat peran dan mengelola izin dengan IAM
  • Menulis ke tabel DynamoDB menggunakan AWS SDK (Python, JavaScript, atau Java)

Konsep Utama

Mempertahankan Data Menyimpan data sehingga bisa kita akses kelak secara independen dari eksekusi program.

Database Non-Relasional Database non-relasional tidak menggunakan skema tabular baris dan kolom. Sebagai gantinya, database ini menggunakan model penyimpanan yang dioptimalkan untuk kebutuhan spesifik tipe data yang disimpan.

Database Kunci-Nilai Tipe database non-relasional yang menyimpan data sebagai kumpulan pasangan nilai-kunci di mana kunci berfungsi sebagai pengidentifikasi unik.

Kunci Utama Nilai yang akan mengidentifikasi setiap penggal data dalam tabel DynamoDB. Nilai ini juga akan berfungsi untuk mempartisi tabel agar dapat diskalakan.

Skema Susunan data yang berfungsi sebagai cetak biru untuk cara membangun database dengan baik.

AWS SDK SDK berarti "Software Development Kit (Perangkat Pengembangan Perangkat Lunak)." AWS SDK menjadi seperangkat alat, perpustakaan, dokumentasi, contoh kode, proses, dan panduan bagi pengembang untuk membuat aplikasi perangkat lunak pada platform tertentu.

Kebaijakan IAM Dokumen yang menentukan sumber daya AWS yang dapat diakses oleh suatu entitas (mis., Layanan, pengguna, grup).

Waktu Penyelesaian

10 menit

Layanan yang Digunakan

Amazon DynamoDB
AWS IAM
AWS Lambda

Implementasi

  • Membuat Tabel DynamoDB

    1. Masuk ke Konsol Amazon DynamoDB.
    2. Pastikan Anda mencatat di wilayah mana Anda membuat fungsi ini. Anda dapat melihat ini di bagian paling atas halaman, di sebelah nama akun Anda.
    3. Klik tombol biru "Create table (Buat tabel)".
    4. Di sebelah "Table name (Nama tabel)" ketik HelloWorldDatabase.
    5. Di kolom "Primary Key (Kunci Utama)" ketik ID.
    6. Klik tombol biru "Create (Buat)".
    7. Salin "Amazon Resource Name (ARN)" tabel dari panel kenan (akan Anda butuhkan nanti dalam modul ini).

  • Membuat dan Menambah Kebijakan IAM di Fungsi Lambda

    1. Sekarang setelah tabel ada, mari edit fungsi Lambda agar dapat menulis data ke dalamnya. Di jendela browser baru, buka Konsol AWS Lambda.
    2. Klik pada fungsi yang dibuat di Modul Dua (jika Anda tetap menggunakan contoh kita, maka akan disebut "HelloWorldFunction").
    3. Izin ke fungsi akan ditambahkan agar dapat menggunakan layanan DynamoDB, dan kami akan menggunakan AWS Identity and Access Management (IAM) untuk melakukannya.
    4. Klik pada tab "Izin".
    5. Pada kotak "Peran eksekusi" klik pada peran. Maka tab browser baru akan muncul.
    6. Klik pada "Tambahkan kebijakan tak terpisah" di sebelah kanan kotak "Kebijakan izin".
    7. Klik pada tab "JSON".
    8. Rekat kebijakan berikut ini di area teks, jangan lupa mengganti ARN tabel di kolom "Sumber Daya" di baris 15:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem" ], "Resource": "YOUR-TABLE-ARN" } ] }

    9. Kebijakan ini akan membuat Lambda berfungsi membaca, mengedit, atau menghapus item, tetapi membatasinya hanya untuk melakukan fungsi tersebut di tabel yang kami buat.

    10. Klik tombol biru "Tinjau Kebijakan".

    11. Di sebelah "nama" ketik HelloWorldDynamoPolicy.

    12. Klik tombol biru "Buat Kebijakan".

    13. Anda sekarang dapat menutup tab browser ini dan kembali ke tab untuk fungsi Lambda.


  • Modifikasi Fungsi Lambda untuk Menulis ke tabel DynamoDB

    • Python

    • JavaScript

    • Java

    • Python

      1. Klik tab "Konfigurasi"
      2. Ganti kode untuk fungsi Anda dengan yang berikut:

      # import the json utility package since we will be working with a JSON object import json # import the AWS SDK (for Python the package name is boto3) import boto3 # import two packages to help us with dates and date formatting from time import gmtime, strftime # create a DynamoDB object using the AWS SDK dynamodb = boto3.resource('dynamodb') # use the DynamoDB object to select our table table = dynamodb.Table('HelloWorldDatabase') # store the current time in a human readable format in a variable now = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) # 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 and store in a variable name = event['firstName'] +' '+ event['lastName'] # write name and time to the DynamoDB table using the object we instantiated and save response in a variable response = table.put_item( Item={ 'ID': name, 'LatestGreetingTime':now }) # return a properly formatted JSON object return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda, ' + name) }

      3. Klik tombol jingga "Simpan" di bagian atas halaman.

    • JavaScript

      1. Klik tab "Konfigurasi"
      2. Ganti kode untuk fungsi Anda dengan yang berikut:

      // Include the AWS SDK module const AWS = require('aws-sdk'); // Instantiate a DynamoDB document client with the SDK let dynamodb = new AWS.DynamoDB.DocumentClient(); // Use built-in module to get current date & time let date = new Date(); // Store date and time in human-readable format in a variable let now = date.toISOString(); // 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 JSON object with parameters for DynamoDB and store in a variable let params = { TableName:'HelloWorldDatabase', Item: { 'ID': name, 'LatestGreetingTime': now } }; // Using await, make sure object writes to DynamoDB table before continuing execution await dynamodb.put(params).promise(); // 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; };

      3. Klik tombol jingga "Simpan" di bagian atas halaman.

    • Java

      1. Klik tab "Konfigurasi"
      2. Pergi ke "Kode fungsi" dan unggah file JAR berikut ini. (Untuk keperluan tutorial ini, kami akan melewatkan pembuatan paket penerapan.)
      3. Perbarui "Penangan" menjadi com.example.app.SavePersonHandler::handleRequest.
      4. Klik tombol jingga "Simpan" di bagian atas halaman.

  • Uji Perubahannya

    1. Klik tombol putih "Uji".
    2. Maka akan terlihat pesan "Hasil eksekusi: berhasil" berlatar belakang hijau.
    3. Di tab browser baru, buka Konsol DynamoDB.
    4. Klik pada "Tabel" di bilah navigasi sebelah kiri.
    5. Klik pada HelloWorldDatabase, yang kita buat tadi di modul ini.
    6. Klik pada tab "Item" di sebelah kanan.
    7. Item yang cocok dengan acara pengujian Anda akan muncul di sini. Jika menggunakan contoh kami, maka ID itemnya adalah "Ada Lovelace."
    8. Setiap kali fungsi Lambda dijalankan, tabel DynamoDB Anda akan diperbarui. Jika menggunakan nama yang sama, hanya cap waktu yang akan berubah.

Arsitektur Aplikasi

Dengan selesainya Modul Empat, mari kita lihat arsitektur yang kini kita miliki:

Untuk menambah pengetahuan mitra dapat mempelajari modul-modul pada fitur

Kita menambahkan dua layanan dalam modul ini: DynamoDB (untuk penyimpanan) dan IAM (untuk mengelola izin dengan aman). Keduanya terhubung ke fungsi Lambda, sehingga dapat menulis ke database kita. Langkah terakhir adalah menambahkan kode ke klien untuk memanggil API Gateway.

Apakah modul ini membantu?

Ya

Tidak

Umpan Balik

Terima Kasih

Harap beri tahu kami apa yang Anda sukai.

Umpan Balik

Close

Maaf karena membuat Anda kecewa

Apakah ada bagian dari tutorial yang tidak relevan, membingungkan, atau tidak akurat? Harap bantu kami meningkatkan tutorial ini dengan memberikan umpan balik.

Umpan Balik

Close

Mulai Modul Lima

Menambah Interaktivitas di Situs Web