Pembangunan AWS Lambda Tanpa Pelayan · Pelajaran

Menyepadukan dengan DynamoDB

Sambungkan fungsi Lambda kepada Amazon DynamoDB, pangkalan data NoSQL terurus sepenuhnya, untuk penyimpanan dan pengambilan data berprestasi tinggi serta boleh skala dalam aplikasi tanpa pelayan

Pelajaran 1 daripada 411 langkah

Menyepadukan dengan DynamoDB ialah pelajaran Pembangunan AWS Lambda Tanpa Pelayan percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pembangunan AWS Lambda Tanpa Pelayan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pembangunan AWS Lambda Tanpa Pelayan merangkumi sejumlah 4 pelajaran.

Lambda Bertemu DynamoDB

Selamat datang! Dalam pelajaran ini, kita akan menghubungkan kehebatan AWS Lambda tanpa pelayan dengan Amazon DynamoDB, pangkalan data NoSQL yang sangat pantas dan fleksibel.

Gabungan ini sesuai untuk membina aplikasi yang boleh diskalakan dan berprestasi tinggi tanpa mengurus pelayan atau infrastruktur pangkalan data.

DynamoDB: NoSQL Secara Ringkas

Amazon DynamoDB ialah pangkalan data NoSQL tanpa pelayan yang diurus sepenuhnya. Tidak seperti pangkalan data SQL tradisional, ia menggunakan model data kunci-nilai dan dokumen.

  • Jadual: Serupa dengan jadual SQL, tetapi menyimpan item.
  • Item: Seperti baris dalam SQL, tetapi boleh mempunyai atribut yang berbeza.
  • Atribut: Seperti lajur, tetapi fleksibel (tiada skema tetap).
  • Kunci Utama: Mengenal pasti setiap item secara unik. Kunci ini boleh berupa Kunci Pembahagian ringkas atau gabungan Kunci Pembahagian + Kunci Isihan.

Menyediakan Jadual DynamoDB Anda

Sebelum Lambda boleh berinteraksi dengan DynamoDB, anda memerlukan jadual. Anda boleh menciptanya dengan mudah dalam AWS Management Console.

Semasa mencipta jadual, anda akan menentukan Kunci Utama. Sebagai contoh, atribut id sebagai Kunci Pembahagian adalah perkara biasa untuk carian mudah.

Memberikan Akses DynamoDB kepada Lambda

Fungsi Lambda anda memerlukan kebenaran untuk berhubung dengan DynamoDB. Perkara ini diurus melalui IAM Role yang dilampirkan pada fungsi Lambda anda.

Anda perlu memberikan dasar seperti dynamodb:PutItem, dynamodb:GetItem dan sebagainya kepada jadual tertentu untuk mendapatkan akses yang selamat dan terperinci. Untuk memudahkan pembelajaran, AmazonDynamoDBFullAccess mungkin digunakan pada peringkat awal, tetapi sentiasa utamakan keistimewaan minimum dalam persekitaran pengeluaran.

Menulis Data: Operasi PutItem

Operasi PutItem digunakan untuk menambah item baharu pada jadual atau menggantikan item sedia ada jika item dengan kunci utama yang sama sudah wujud.

Cuba jalankan contoh ini untuk melihat cara menambah item. Kami menggunakan AWS SDK olok-olok untuk pelaksanaan setempat.

// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
  DocumentClient: function() {
    return {
      put: (params) => ({
        promise: () => {
          console.log("MOCK: Put item to table '" + params.TableName + "':", params.Item);
          return Promise.resolve({ success: true, item: params.Item });
        }
      })
    };
  }
};

// Simulate the Lambda handler function
async function handler(event) {
  const ddb = new mockDynamoDB.DocumentClient();

  const params = {
    TableName: "MyUsersTable", // Replace with your table name
    Item: {
      id: event.userId,
      name: event.userName,
      email: event.userEmail
    }
  };

  try {
    const data = await ddb.put(params).promise();
    console.log("Operation successful (mock):", data);
    return { statusCode: 200, body: JSON.stringify(data) };
  } catch (err) {
    console.error("Operation failed (mock):", err);
    return { statusCode: 500, body: JSON.stringify(err) };
  }
}

// Entry point for CoddyKit's runnable environment
async function main() {
  console.log("Running simulated PutItem operation...");
  const testEvent = {
    userId: "user123",
    userName: "Alice",
    userEmail: "alice@example.com"
  };
  await handler(testEvent);
}

main();

Memahami Kod PutItem

Dalam contoh ini, kami menggunakan DynamoDB.DocumentClient() untuk memudahkan interaksi dengan DynamoDB kerana ia mengendalikan jenis data secara automatik.

  • TableName: Nama jadual DynamoDB anda.
  • Item: Objek JavaScript yang mewakili data yang ingin anda simpan. Setiap pasangan kunci-nilai ialah atribut.
  • promise(): Digunakan untuk mengendalikan sifat tak segerak panggilan AWS SDK.

Membaca Data: Operasi GetItem

Untuk mendapatkan satu item daripada jadual anda, gunakan operasi GetItem. Anda mesti memberikan Kunci Utama penuh bagi item yang ingin diambil.

Jalankan kod ini untuk melihat cara mendapatkan semula item.

// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
  DocumentClient: function() {
    return {
      get: (params) => ({
        promise: () => {
          console.log("MOCK: Get item from table '" + params.TableName + "' with Key:", params.Key);
          // Simulate finding an item with id 'user123'
          if (params.Key.id === "user123") {
            return Promise.resolve({ Item: { id: "user123", name: "Alice", email: "alice@example.com" } });
          }
          return Promise.resolve({ Item: null }); // Item not found
        }
      })
    };
  }
};

// Simulate the Lambda handler function
async function handler(event) {
  const ddb = new mockDynamoDB.DocumentClient();

  const params = {
    TableName: "MyUsersTable", // Replace with your table name
    Key: {
      id: event.userId // The primary key to retrieve
    }
  };

  try {
    const data = await ddb.get(params).promise();
    console.log("Retrieved item (mock):", data.Item);
    return { statusCode: 200, body: JSON.stringify(data.Item) };
  } catch (err) {
    console.error("Operation failed (mock):", err);
    return { statusCode: 500, body: JSON.stringify(err) };
  }
}

// Entry point for CoddyKit's runnable environment
async function main() {
  console.log("Running simulated GetItem operation...");
  const testEvent = {
    userId: "user123" // ID of the item to retrieve
  };
  await handler(testEvent);
}

main();

Mengemas Kini Data: Operasi UpdateItem

Operasi UpdateItem mengubah suai atribut sedia ada bagi item atau menambah atribut baharu jika atribut tersebut belum wujud. Operasi ini lebih cekap daripada membaca, mengubah suai dan kemudian memasukkan semula keseluruhan item.

Contoh ini mengemas kini email bagi pengguna sedia ada.

// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
  DocumentClient: function() {
    return {
      update: (params) => ({
        promise: () => {
          console.log("MOCK: Update item in table '" + params.TableName + "' with Key:", params.Key);
          console.log("MOCK: Update Expression:", params.UpdateExpression, "Values:", params.ExpressionAttributeValues);
          return Promise.resolve({ Attributes: { id: params.Key.id, email: "updated@example.com" } });
        }
      })
    };
  }
};

// Simulate the Lambda handler function
async function handler(event) {
  const ddb = new mockDynamoDB.DocumentClient();

  const params = {
    TableName: "MyUsersTable", // Replace with your table name
    Key: {
      id: event.userId // Primary key of the item to update
    },
    UpdateExpression: "set email = :e",
    ExpressionAttributeValues: {
      ":e": event.newEmail
    },
    ReturnValues: "UPDATED_NEW" // Return the new values of updated attributes
  };

  try {
    const data = await ddb.update(params).promise();
    console.log("Updated item (mock):", data.Attributes);
    return { statusCode: 200, body: JSON.stringify(data.Attributes) };
  } catch (err) {
    console.error("Operation failed (mock):", err);
    return { statusCode: 500, body: JSON.stringify(err) };
  }
}

// Entry point for CoddyKit's runnable environment
async function main() {
  console.log("Running simulated UpdateItem operation...");
  const testEvent = {
    userId: "user123",
    newEmail: "alice.new@example.com"
  };
  await handler(testEvent);
}

main();

Memadam Data: Operasi DeleteItem

Apabila anda tidak lagi memerlukan sesuatu item, anda boleh membuangnya menggunakan operasi DeleteItem. Sama seperti GetItem, anda mesti menentukan kunci utama penuh bagi item yang ingin dipadam.

Berhati-hati semasa memadam kerana tindakan ini kekal!

// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
  DocumentClient: function() {
    return {
      delete: (params) => ({
        promise: () => {
          console.log("MOCK: Delete item from table '" + params.TableName + "' with Key:", params.Key);
          return Promise.resolve({ success: true });
        }
      })
    };
  }
};

// Simulate the Lambda handler function
async function handler(event) {
  const ddb = new mockDynamoDB.DocumentClient();

  const params = {
    TableName: "MyUsersTable", // Replace with your table name
    Key: {
      id: event.userId // Primary key of the item to delete
    }
  };

  try {
    const data = await ddb.delete(params).promise();
    console.log("Item deleted successfully (mock).");
    return { statusCode: 200, body: JSON.stringify(data) };
  } catch (err) {
    console.error("Operation failed (mock):", err);
    return { statusCode: 500, body: JSON.stringify(err) };
  }
}

// Entry point for CoddyKit's runnable environment
async function main() {
  console.log("Running simulated DeleteItem operation...");
  const testEvent = {
    userId: "user123" // ID of the item to delete
  };
  await handler(testEvent);
}

main();

Semakan Pantas: Tindakan DynamoDB

Anda telah mempelajari operasi asas DynamoDB. Mari uji pemahaman anda!

Ringkasan: Lambda + DynamoDB

Syabas! Anda telah mempelajari cara mengintegrasikan AWS Lambda dengan Amazon DynamoDB untuk membina aplikasi tanpa pelayan yang berkuasa.

  • DynamoDB menyediakan pangkalan data NoSQL yang boleh diskalakan.
  • Fungsi Lambda memerlukan kebenaran IAM untuk berinteraksi dengan jadual DynamoDB.
  • Anda boleh melaksanakan operasi biasa seperti PutItem (mencipta/menggantikan), GetItem (membaca), UpdateItem (mengubah suai) dan DeleteItem (membuang).

Integrasi ini ialah asas untuk membina bahagian belakang tanpa pelayan yang dinamik dan dipacu peristiwa!

Percuma untuk bermula

Pelajari Pembangunan AWS Lambda Tanpa Pelayan dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Menyepadukan dengan DynamoDB” percuma?

Ya — teks penuh “Menyepadukan dengan DynamoDB” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pembangunan AWS Lambda Tanpa Pelayan, tingkat taraf kepada CoddyKit PRO. Kursus Pembangunan AWS Lambda Tanpa Pelayan merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Menyepadukan dengan DynamoDB”?

Sambungkan fungsi Lambda kepada Amazon DynamoDB, pangkalan data NoSQL terurus sepenuhnya, untuk penyimpanan dan pengambilan data berprestasi tinggi serta boleh skala dalam aplikasi tanpa pelayan Anda berlatih Pembangunan AWS Lambda Tanpa Pelayan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pembangunan AWS Lambda Tanpa Pelayan?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pembangunan AWS Lambda Tanpa Pelayan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Menyepadukan dengan DynamoDB” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pembangunan AWS Lambda Tanpa Pelayan ini?

Ya. Setiap pelajaran Pembangunan AWS Lambda Tanpa Pelayan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Menyepadukan dengan DynamoDB
  2. S3 untuk Penyimpanan Fail dan Peristiwa
  3. Memilih Gedung Data yang Tepat
  4. Penyimpanan Cache dengan Amazon ElastiCache dan DAX
← Kembali ke Pembangunan AWS Lambda Tanpa Pelayan