Dynamo DB:在通过lambda函数创建表时插入数据

时间:2019-05-06 06:31:13

标签: aws-lambda amazon-dynamodb

我有一个lambda函数,用于创建DynamoDB表。

我有一个要求,在创建表之后,我需要在该表中插入一些数据。

在DynamoDB中,创建表是一个异步调用。在创建表时,它处于"CREATING"状态,此后进入"ACTIVE"状态。

面临的挑战是,我无法在此表中插入数据,直到它不处于"ACTIVE"状态并且出现ResourceNotFoundException异常为止。

有什么办法可以在创建数据时将其插入表中吗?

我想在同一Lambda函数调用中完成表的创建和数据插入。

1 个答案:

答案 0 :(得分:1)

您已经发现,您只能写入一个活动(/创建的)表,并且无法使用dynamodb::CreateTable提供数据来“预加载”表。

当表准备好时,不会发出任何事件。因此,您必须轮询直到表变为活动状态。这应该在lambda中轻松实现,因为DynamoDB很少会花费30-60秒以上的时间来配置表。

创建表后,您可以每秒(或大约)调用dynamodb::DescribeTable并等待其返回Table.TableStatus === 'ACTIVE'。一旦他们的表状态变为活动状态,就可以插入初始数据。只需记住将Lambda超时增加到整整15分钟,以防AWS花费更长的时间来配置您的表。

您可以在AWS Documentation中看到一个示例。