【发布时间】:2021-07-14 10:55:36
【问题描述】:
每次执行 Lambda 函数时,我都会尝试修改 Dynamodb 表。 具体来说,我创建了一个简单的 lambda 函数,它返回 S3 存储桶名称的列表,并且由于 Cloudwatch 的规则,该函数每分钟运行一次。 然而,正如我之前所说,我的目标是每次执行相同的函数时也更新一个 Dynamodb。具体来说,我想每次添加一个具有相同属性的新项目(假设函数执行 1000 次,我想要 1K 个项目/行)。
但是我不知道该怎么做。有什么建议?代码如下:
import json
import boto3
s3 = boto3.resource('s3')
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Table')
def lambda_handler(event, context):
bucket_list = []
for b in s3.buckets.all():
print(b.name)
bucket_list.append(b.name)
response = "done"
table.put_item(
Item = {
"Update": response
}
)
return {
"statusCode": 200,
"body": bucket_list
}
提前谢谢你
【问题讨论】:
-
代码有什么问题?任何错误
-
没有错误,代码有效,但 Dynamodb 中的最终表格仅保留一行。相反,我想要的是每次执行文件时都会将一行添加到数据库中......也许我应该使用事件的 cloudwatch 日志 ID 而不是使用“项目”......但我不知道如何得到它
-
也许不是使用“Item” = {“Update”:“done”},而是使用特定的日志 id = {“Update”: specific log timestamp} 但同样......我不知道怎么弄
-
我不知道你的数据库的结构是什么,但你似乎没有为你的表设置任何主键。
-
忘了提。我已将它手动添加到 Dynamodb。是“更新”
标签: amazon-web-services amazon-s3 aws-lambda amazon-dynamodb aws-cloudwatch-log-insights