我正在使用此功能https://github.com/bfansports/dynamodb-to-elasticsearch将我的DynamoDB表与ElasticSearch同步。不幸的是,尽管我选择了“新旧图像-项目的新旧图像,但它仅处理新添加的数据和更新的数据,而不处理表中以前存在的行。 “在管理流”部分。
该如何解决?
答案 0 :(得分:0)
好吧,我最终更新了DynamoDB,并触发了Stream,因此可以完成ElasticSearch和DynamoDB之间的同步。 这是我使用的脚本:
import json
import boto3
import random
def lambda_handler(event, context):
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('image-library')
response = table.scan(
ProjectionExpression='#k',
ExpressionAttributeNames={
'#k' : 'id', #partition key
}
)
items = response['Items']
random_number = random.randint(0,1000)
for item in items:
response = table.update_item(
Key=item,
UpdateExpression='SET #f = :f',
ExpressionAttributeNames={
'#f' :'force_update'
},
ExpressionAttributeValues={
':f' : random_number
}
)