以下是一个示例Lambda函数,用于在AWS S3的“put”事件触发时创建一个带有正确所有者Cognito的DynamoDB条目:
import boto3
def lambda_handler(event, context):
# 获取S3事件信息
s3_event = event['Records'][0]['s3']
bucket_name = s3_event['bucket']['name']
object_key = s3_event['object']['key']
# 获取Cognito用户信息
cognito_identity_id = event['Records'][0]['userIdentity']['principalId']
# 创建DynamoDB条目
dynamodb = boto3.client('dynamodb')
response = dynamodb.put_item(
TableName='YourDynamoDBTableName',
Item={
'BucketName': {'S': bucket_name},
'ObjectKey': {'S': object_key},
'CognitoIdentityId': {'S': cognito_identity_id}
}
)
return {
'statusCode': 200,
'body': 'DynamoDB条目已成功创建'
}
要使用此函数,您需要执行以下步骤:
YourDynamoDBTableName
处替换为您要使用的DynamoDB表的名称。现在,当有文件上传到指定的S3存储桶时,Lambda函数将被触发,并在DynamoDB中创建一个新的条目,其中包含S3存储桶的名称,上传的文件的键以及Cognito用户的身份标识。
上一篇:AWS S3的小文件问题
下一篇:AWS S3地理位置重定向