【问题标题】:Dynamodb trigger to update another dynamobo table using lambdaDynamodb 触发器使用 lambda 更新另一个 dynamobo 表
【发布时间】:2020-05-11 04:42:06
【问题描述】:

我正在为我的 lambda 使用 dynamodb 触发器。所以我正在考虑两个条件,每当我的表 1 更新时,都应该触发 lambda,并根据条件表达式更新表 2,就像我在表 2 中应用的更改一样。由于我要使用 boto 3 资源,因此需要对相同的示例逻辑进行重新分级。我是使用 dynamodb 触发器处理事件的新手。任何帮助将不胜感激。

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    通常你会在表 1 和你的 lambda 函数之间设置event source mapping

    lambda 函数将处理表 1 中的记录,例如根据某些条件过滤掉它们,然后将剩余的记录写入表2。

    为了写入表 2,boto3 将 interface 提供给 dynamodb。

    【讨论】:

    • 你有没有boto3逻辑来读取表1插入操作的流数据
    • 您不必自己阅读。这就是您使用事件源映射的原因。它将自动调用您的函数并从流中传递记录。我建议阅读有关事件源映射如何工作的更多信息。
    【解决方案2】:

    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)
    

    【讨论】:

      猜你喜欢
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 2015-10-13
      • 2021-01-24
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多