在 .NET 或 Java 中使用带有AWS软件开发工具包的自定义实现 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 .NET 或 Java 中使用带有AWS软件开发工具包的自定义实现

您可以使用.NET、Java、Python 或其他支持的编程语言来构建自定义解决方案,而不必依赖其他AWS服务来执行跨账户表复制。 AWS提供软件开发工具包,允许以编程方式访问多种语言的AWS服务或 API。此解决方案需要您使用所用语言的实际开发经验。

您可以创建控制台应用程序(如果您使用 Web API,则可以创建新的 API 端点),调用该应用程序来执行完整表复制。自定义解决方案应执行下列步骤:

  1. 删除目标账户中的 DynamoDB 表。

  2. 在目标账户中创建 DynamoDB 表(具有按需容量)和索引。或者,您可以使用预置容量模式并根据需要设置 RCU 和 WCU。

  3. 使用AWS SDK 中的 DynamoDB 批量写入操作将数据从源账户复制到目标账户,以减少对 DynamoDB 的服务调用次数。

自定义实现使用安全令牌来访问提供源账户和目标账户访问权限的 IAM 策略。

此解决方案最适合大小较小(小于 500 MB)的 DynamoDB 表。

对于包含 200 K 个项目(平均项目大小为 30 KB,表大小为 250 MB)的 DynamoDB 表,此解决方案(包括表创建和数据填充)大约需要 5 分钟:

  • 容量模式 — 已配置,有 4000 个 RCU 和 4000 个 WCU

  • 消耗的容量单位 — 30 K RCU 和大约 400 K WCU

优势

  • 该解决方案不依赖于 DynamoDB 以外的任何AWS服务,因此维护开销较少。

  • 通过使用AWS Lambda函数运行该解决方案,可以使其成为无服务器解决方案。但是,运行时间必须为 15 分钟或更短。

缺点

  • 该解决方案消耗更多的 RCU 和 WCU。

  • 对于大型数据集,这可能不是一个好的解决方案,因为该解决方案需要与两个不同账户中的两个不同 DynamoDB 表进行活跃连接(使用两个不同的安全令牌)。如果大型数据集的表副本需要很长时间,则可能会出现连接中断或安全令牌到期,因此您必须实现逻辑来处理这些可能性。您还必须实现逻辑,以便从失败的地方继续复制。

有关更多信息,请参阅使用自定义实现模式跨账户复制 Amazon DynamoDB 表