无服务器框架(Serverless Framework)是一种用于构建和部署应用程序的框架,它允许开发者在不管理服务器的情况下运行代码。AWS Lambda 是一种无服务器计算服务,允许你在云中运行代码而无需预置或管理服务器。Amazon S3 是一种对象存储服务,提供可扩展性、可用性和耐久性。Amazon DynamoDB 是一种完全托管的NoSQL数据库服务,提供快速且可预测的性能。
在 AWS 管理控制台中,创建一个新的 S3 存储桶。
以下是一个示例 Python 代码:
import boto3
import zipfile
import io
s3 = boto3.client('s3')
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')
def lambda_handler(event, context):
bucket_name = event['Records'][0]['s3']['bucket']['name']
file_key = event['Records'][0]['s3']['object']['key']
response = s3.get_object(Bucket=bucket_name, Key=file_key)
file_content = response['Body'].read()
with zipfile.ZipFile(io.BytesIO(file_content), 'r') as zip_ref:
zip_ref.extractall('extracted_files')
# 假设解压后的文件是 CSV 格式
with open('extracted_files/data.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
table.put_item(Item={'id': row[0], 'data': row[1]})
return {
'statusCode': 200,
'body': 'File processed successfully'
}
使用 AWS 管理控制台或 AWS CLI 上传文件到 S3 存储桶。
当文件上传到 S3 时,Lambda 函数会被触发,解压文件并将数据存储到 DynamoDB。
通过以上步骤,你可以成功创建一个 Lambda 函数,并在 S3 中上传文件后自动解压并存储到 DynamoDB。
领取专属 10元无门槛券
手把手带您无忧上云