Building Serverless Functions with AWS Lambda + DynamoDB

truongthu.vong

New member
## Xây dựng các chức năng không có máy chủ với AWS Lambda và DynamoDB

Máy tính không có máy chủ là một mô hình điện toán đám mây cho phép các nhà phát triển xây dựng và chạy các ứng dụng mà không phải lo lắng về việc cung cấp hoặc quản lý máy chủ.Điều này có thể tiết kiệm thời gian và tiền bạc của doanh nghiệp, và nó cũng có thể giúp họ mở rộng quy mô các ứng dụng của họ dễ dàng hơn.

AWS Lambda là một nền tảng tính toán không có máy chủ cho phép bạn chạy mã mà không phải cung cấp hoặc quản lý máy chủ.Bạn có thể sử dụng Lambda để chạy mã để phản hồi các sự kiện, chẳng hạn như khi một tệp được tải lên Amazon S3 hoặc khi một tin nhắn mới được gửi đến hàng đợi Amazon Sqs.

DynamoDB là một dịch vụ cơ sở dữ liệu NoQuery được quản lý đầy đủ cung cấp hiệu suất nhanh và có thể dự đoán được.Bạn có thể sử dụng DynamoDB để lưu trữ dữ liệu cho các ứng dụng không có máy chủ của mình.

Trong hướng dẫn này, bạn sẽ học cách xây dựng các chức năng không có máy chủ với AWS Lambda và DynamoDB.Bạn sẽ tạo một chức năng đơn giản đọc dữ liệu từ bảng DynamoDB và gửi nó đến chủ đề Amazon SNS.

### Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn sẽ cần những điều sau đây:

* Tài khoản AWS
* Giao diện dòng lệnh AWS (AWS CLI)
* AWS Sam Cli
* Bảng DynamoDB
* Một chủ đề của Amazon SNS

### Tạo bảng DynamoDB

Đầu tiên, bạn cần tạo một bảng DynamoDB để lưu trữ dữ liệu của bạn.Bạn có thể làm điều này bằng cách sử dụng bảng điều khiển quản lý AWS hoặc AWS CLI.

Để tạo bảng bằng bảng điều khiển quản lý AWS, hãy truy cập [Bảng điều khiển DynamoDB] (https://console.aws.amazon.com/dynamodb/) và nhấp vào ** Tạo bảng **.

Đối với tên ** tên bảng **, hãy nhập tên cho bảng của bạn.

Đối với lược đồ khóa ** **, chọn ** phím phân vùng ** và nhập `id`.

Đối với kiểu dữ liệu ** **, chọn `String`.

Nhấp vào ** Tạo **.

Bảng DynamoDB của bạn hiện đã được tạo.

Để tạo bảng bằng AWS CLI, hãy chạy lệnh sau:

`` `
AWS DynamoDB Created-Table \
-Table-name My Table \
-Phân tích các định nghĩa \ \
AttributEname = id, Attributype = s \
--Khey-schema Attributename = id, keytype = băm
`` `

### Tạo chủ đề Amazon SNS

Tiếp theo, bạn cần tạo một chủ đề Amazon SNS để gửi tin nhắn của bạn đến.Bạn có thể làm điều này bằng cách sử dụng bảng điều khiển quản lý AWS hoặc AWS CLI.

Để tạo một chủ đề bằng bảng điều khiển quản lý AWS, hãy truy cập [Bảng điều khiển Amazon SNS] (https://console.aws.amazon.com/sns/) và nhấp vào ** Tạo chủ đề **.

Đối với tên chủ đề ** **, hãy nhập tên cho chủ đề của bạn.

Nhấp vào ** Tạo chủ đề **.

Chủ đề Amazon SNS của bạn hiện đã được tạo ra.

Để tạo một chủ đề bằng AWS CLI, hãy chạy lệnh sau:

`` `
AWS SNS CREATE-TOPIC \
-tên tôi là chủ đề của tôi
`` `

### Tạo chức năng không có máy chủ

Bây giờ bạn đã tạo một bảng DynamoDB và chủ đề Amazon SNS, bạn có thể tạo chức năng không có máy chủ để đọc dữ liệu từ bảng và gửi nó đến chủ đề.

Bạn có thể tạo chức năng không có máy chủ bằng cách sử dụng AWS SAM CLI.

Để tạo chức năng bằng cách sử dụng AWS SAM CLI, hãy chạy lệnh sau:

`` `
Sam init-Runtime Python3.8-tên tôi là chức năng
`` `

Điều này sẽ tạo ra một thư mục mới gọi là `my-function`.

Mở tệp `memplate.yaml` trong thư mục` my-function`.

Tệp này chứa định nghĩa về chức năng không có máy chủ của bạn.

Cập nhật tệp `memplate.yaml` với mã sau:

`` `
AwstemplateFormatVersion: 2010-09-09
Tài nguyên:
Myform:
Loại: AWS :: Serverless :: Chức năng
Của cải:
Codeuri: ./
Handler: app.lambda_handler
Thời gian chạy: Python3.8
Sự kiện:
DynamoDbTrigger:
Loại: DynamoDB
Của cải:
TableName: My Table
Gây nên:
- Loại: 'Chèn'
# -
=======================================
## Build Serverless Functions with AWS Lambda and DynamoDB

Serverless computing is a cloud computing paradigm that allows developers to build and run applications without having to worry about provisioning or managing servers. This can save businesses time and money, and it can also help them to scale their applications more easily.

AWS Lambda is a serverless compute platform that allows you to run code without having to provision or manage servers. You can use Lambda to run code in response to events, such as when a file is uploaded to Amazon S3 or when a new message is sent to an Amazon SQS queue.

DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance. You can use DynamoDB to store data for your serverless applications.

In this tutorial, you will learn how to build serverless functions with AWS Lambda and DynamoDB. You will create a simple function that reads data from a DynamoDB table and sends it to an Amazon SNS topic.

### Prerequisites

To follow this tutorial, you will need the following:

* An AWS account
* The AWS Command Line Interface (AWS CLI)
* The AWS SAM CLI
* A DynamoDB table
* An Amazon SNS topic

### Create a DynamoDB table

First, you need to create a DynamoDB table to store your data. You can do this using the AWS Management Console or the AWS CLI.

To create a table using the AWS Management Console, go to the [DynamoDB console](https://console.aws.amazon.com/dynamodb/) and click **Create table**.

For the **Table name**, enter a name for your table.

For the **Key schema**, select **Partition key** and enter `id`.

For the **Data type**, select `String`.

Click **Create**.

Your DynamoDB table is now created.

To create a table using the AWS CLI, run the following command:

```
aws dynamodb create-table \
--table-name my-table \
--attribute-definitions \
AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH
```

### Create an Amazon SNS topic

Next, you need to create an Amazon SNS topic to send your messages to. You can do this using the AWS Management Console or the AWS CLI.

To create a topic using the AWS Management Console, go to the [Amazon SNS console](https://console.aws.amazon.com/sns/) and click **Create topic**.

For the **Topic name**, enter a name for your topic.

Click **Create topic**.

Your Amazon SNS topic is now created.

To create a topic using the AWS CLI, run the following command:

```
aws sns create-topic \
--name my-topic
```

### Create a serverless function

Now that you have created a DynamoDB table and an Amazon SNS topic, you can create a serverless function to read data from the table and send it to the topic.

You can create a serverless function using the AWS SAM CLI.

To create a function using the AWS SAM CLI, run the following command:

```
sam init --runtime python3.8 --name my-function
```

This will create a new directory called `my-function`.

Open the `template.yaml` file in the `my-function` directory.

This file contains the definition of your serverless function.

Update the `template.yaml` file with the following code:

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: app.lambda_handler
Runtime: python3.8
Events:
DynamoDBTrigger:
Type: DynamoDB
Properties:
TableName: my-table
Triggers:
- Type: 'INSERT'
# -
 
Join ToolsKiemTrieuDoGroup
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock