如何在DynamoDB中模拟BatchWriteItem失败?

时间:2017-10-05 14:17:04

标签: amazon-web-services amazon-dynamodb

如何在DynamoDB中创建受控BatchWriteItem失败?

基本上,我希望在DynamoDB中有一种模拟失败的方法(故意破坏BatchWriteItem),这样我就可以确保UnprocessedItemsresponse的逻辑正常工作。

来自文档: http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html

  

通常,您将在循环中调用BatchWriteItem。每次迭代   将检查未处理的项目并提交新的BatchWriteItem   请求所有未处理的物品,直到所有物品都已存在   处理。

下面讨论了两个使用do-while循环和回调的类似解决方案:

JAVA with do-while:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/batch-operation-document-api-java.html

带回调的NODE:

How to handle UnprocessedItems using AWS JavaScript SDK (dynamoDB)?

如何准备“已损坏的” BatchWriteItem请求以进行测试?

DynamoDB能否最终进入无限循环?即BatchWriteItem返回UnprocessedItems,代码需要UnprocessedItems并调用BatchWriteItem并一次又一次地返回UnprocessedItems

1 个答案:

答案 0 :(得分:2)

由于对各个表进行限制,您将失败BatchWriteItem。因此,如果要在这种情况下进行测试,则必须使DynamoDB表变得受限制。步骤进行:

  1. 计算DynamoDB表的Capacity write Unit
  2. 实现一个向DynamoDB写入太多的函数,使其达到最大容量写入单位。
  3. 运行您的函数BatchWriteItem。您将能够获得UnprocessedItems,因为您的DynamoDb会受到限制。