我有 AWS S3 bucket1 并且檔案每天都在 s3 中上傳,但我只想上傳最近添加的檔案名,而不是以前在 dynomodb 中添加的檔案名。
桶 1 :
abc.txt --filename 已添加到 dynomodb 中,并具有上一個日期。acd.txt --今天的檔案,我想把這個檔案名加到dynomodb中。
在 S3 中獲取最近上傳的檔案名并將其更新到 dynomodb。
如果可以提供一些有關它的見解,請欣賞它。
uj5u.com熱心網友回復:
您應該使用 S3 事件通知將新檔案資訊發送到 Lambda 并將其寫入 DynamoDB。
uj5u.com熱心網友回復:
使用所指出的 S3 事件通知,您的 Lambda 函式將收到類似于以下內容的事件:
{
"Records": [
{
"eventVersion": "2.0",
"eventSource": "aws:s3",
"awsRegion": "us-east-1",
"eventTime": "1970-01-01T00:00:00.000Z",
"eventName": "ObjectCreated:Put",
<snip>
"s3": {
<snip>
"object": {
"key": "test/key",
"size": 1024,
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901"
}
}
}
]
}
您應該能夠決議密鑰以獲取檔案名,然后使用 boto3 使用以下命令將資料寫入 DynamoDB:
ddb = boto3.client('dynamodb')
ddb.put_item(
TableName='tablename',
Item={
"filename": event["Records"][0]["s3"]["object"]["key"],
"key": 123
)
請注意,需要在 S3 存盤桶和 Lambda 函式之間配置適當的事件源映射,以及在 Lambda 的執行角色中寫入 DDB 的權限。
https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367223.html
標籤:亚马逊网络服务 亚马逊-s3 aws-lambda 亚马逊动态数据库 boto3
