【发布时间】:2020-05-11 04:42:06
【问题描述】:
我正在为我的 lambda 使用 dynamodb 触发器。所以我正在考虑两个条件,每当我的表 1 更新时,都应该触发 lambda,并根据条件表达式更新表 2,就像我在表 2 中应用的更改一样。由于我要使用 boto 3 资源,因此需要对相同的示例逻辑进行重新分级。我是使用 dynamodb 触发器处理事件的新手。任何帮助将不胜感激。
【问题讨论】:
标签: amazon-web-services aws-lambda
我正在为我的 lambda 使用 dynamodb 触发器。所以我正在考虑两个条件,每当我的表 1 更新时,都应该触发 lambda,并根据条件表达式更新表 2,就像我在表 2 中应用的更改一样。由于我要使用 boto 3 资源,因此需要对相同的示例逻辑进行重新分级。我是使用 dynamodb 触发器处理事件的新手。任何帮助将不胜感激。
【问题讨论】:
标签: amazon-web-services aws-lambda
通常你会在表 1 和你的 lambda 函数之间设置event source mapping。
lambda 函数将处理表 1 中的记录,例如根据某些条件过滤掉它们,然后将剩余的记录写入表2。
为了写入表 2,boto3 将 interface 提供给 dynamodb。
【讨论】:
Table-1 ~~~~~~~~> AWS Lambda --------->Table2
AWS Lambda 收到的事件类似于 this。您需要做的是根据事件名称处理存在的值并将其存储在表 2 中。
def lambda_handler(event, context):
dynamodb = boto3.resource('dynamodb', region_name='eu-west-1')
table2 = dynamodb.Table('Table-2')
# Read the records in the event
for record in event['Records']:
# process record and prepare required object for Table-2
table_2_obj = process_record(record)
put_item_response = table2.put_item(table_2_obj)
# Verify the response if required
print(put_item_response)
【讨论】: