在本教程中,您将创建一个无服务器 API,用于创建、读取、更新和删除 DynamoDB 表中的项目。DynamoDB 是一项完全托管的 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。完成本教程大约需要 30 分钟,您可以在AWS免费套餐中完成。
首先,使用 DynamoDB 控制台创建 DynamoDB 表。然后,使用 AWS Lambda 控制台创建 Lambda 函数。接下来,使用 API Gateway 控制台创建 HTTP API。最后,测试您的 API。
当您调用 HTTP API 时,API Gateway 会将请求路由到您的 Lambda 函数。Lambda 函数与 DynamoDB 进行交互,并将响应返回 API Gateway。然后 API Gateway 会向您返回响应。
步骤 1:创建 DynamoDB 表
您可以使用 DynamoDB 表为您的 API 存储数据。
每个项目都有一个唯一的 ID,我们将其用作表的分区键。
创建 DynamoDB 表
-
从 https://console.aws.amazon.com/dynamodb/ 打开 DynamoDB 控制台。
-
选择 Create Table。
-
对于 Table name(表名称),输入
http-crud-tutorial-items
。 -
对于 Partition key(分区键),输入
id
。 -
选择 Create Table(创建表)。
步骤 2:创建 Lambda 函数
注意lambda role
import json
import boto3
def lambda_handler(event, context):
# TODO implement
id=event['sequence']
message=event['message']
client = boto3.client('comprehend')
response = client.detect_sentiment(Text=message,LanguageCode='en')
statusCode = response['Sentiment']
dynamodb_client = boto3.client('dynamodb')
response = dynamodb_client.put_item(
Item={
'id': {
'S': id,
},
'sentiment': {
'S': statusCode,
},
'message': {
'S': message,
}
},
TableName='unicorn',
)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
import boto3, json
TABLE_NAME = "employee"
dynamodb_client = boto3.client('dynamodb')
ERR_MSG = {
'body': 'Failed to update Database',
'headers': {
'Content-Type': 'text/plain'
},
'statusCode': 200
}
def update_dynamodb(data):
response = dynamodb_client.put_item(
Item={
'employee_id': {
'S': data['employee_id'],
},
'Artist': {
'S': data['employee_tittle'],
}
},
TableName=TABLE_NAME,
)
print(response)
def handler(event, context):
try:
print(event)
update_dynamodb(event)
return {
'body': f'Data has been updated.',
'headers': {
'Content-Type': 'text/plain'
},
'statusCode': 200
}
return ERR_MSG
except Exception as e:
print('the error is:', e)
return ERR_MSG
步骤 3:创建 HTTP API
HTTP API 为您的 Lambda 函数提供了 HTTP 终端节点。在此步骤中,您将创建空 API。在以下步骤中,您将配置路由和集成以连接 API 和 Lambda 函数。
要创建 HTTP API
-
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。
-
选择 Create API(创建 API),然后为 HTTP API 选择 Build(构建)。
-
对于 API Name (API 名称),请输入
http-crud-tutorial-api
。 -
选择 Next (下一步)。
-
对于 Configure routes(配置路由),选择 Next(下一步)以跳过路由创建。稍后再创建路由。
-
查看 API Gateway 为您创建的阶段,然后选择 Next(下一步)。
-
选择创建。
步骤 4:创建路由
步骤 4:创建路由
路由是将传入的 API 请求发送到后端资源的一种方式。路由包含两部分:HTTP 方法和资源路径,例如 GET /items
。对于此示例 API,我们创建了四个路由:
-
GET /items/{id}
-
GET /items
-
PUT /items
-
DELETE /items/{id}
要创建路由
-
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。
-
选择 API。
-
选择路由。
-
选择创建。
-
对于 Method(方法),选择
GET
。 -
对于路径,请输入
/items/{id}
。路径结尾的{id}
是 API Gateway 在客户端提出请求时从请求路径中接收的路径参数。 -
选择创建。
-
对
GET /items
、DELETE /items/{id}
和PUT /items
重复步骤 4-7