#dynamo-db #testing #aws-sdk #cleanup

dynamodb-tools

一个简单的库,用于轻松处理 DynamoDB

6 个版本

0.4.0 2023 年 12 月 24 日
0.3.5 2023 年 2 月 3 日
0.3.4 2023 年 1 月 20 日
0.3.1 2022 年 12 月 12 日

#1054 in 开发工具

MIT 许可证

18KB
405

DynamoDB 工具

这个crate之前叫做dynamodb-tester,但我决定将其重命名为dynamodb-tools,因为它不仅仅用于测试。

由于 AWS 提供了DynamoDB Local,我们可以在开发与测试环境中利用它。然而,管理 DynamoDB 客户端和表很繁琐,我们需要在每次测试结束时清理这些内容,以免污染其他测试。这个crate将帮助您创建具有唯一名称的表,并在测试结束后将其销毁(如果您使用 Drop trait 的话)。

使用方法

首先,您需要自己下载并运行 DynamoDB Local。例如,我将它解压缩到了 ~/bin/dynamodb_local_latest,因此我可以这样启动它

$ java -Djava.library.path=~/bin/dynamodb_local_latest/DynamoDBLocal_lib -jar ~/bin/dynamodb_local_latest/DynamoDBLocal.jar -inMemory -sharedDb

您可以将其设置为服务,以便在系统启动时自动启动。

在您的测试代码中,您可以使用它如下

// first, create the LocalClient
use dynamodb_tools::DynamodbConnector;
let connector = DynamodbConnector::try_new("fixtures/config.yml").await?;
// then you could use the returned client & table_name
// to interact with dynamodb local.
let ret = connector.client
    .put_item()
    .table_name(connector.table_name().unwrap())
    .set_item(Some(item))
    .send()
    .await?;

如果您想将其与 GitHub Action 集成,可以使用此操作

- name: Setup DynamoDB Local
  uses: rrainn/[email protected]
  with:
  port: 8000
  cors: '*'

有关更多详细信息,请参阅build.yml

依赖

~16–27MB
~361K SLoC