将全局表更新到版本 2019.11.21(当前版)
DynamoDB 全局表有两种版本:版本 2019.11.21(当前) 和 版本 2017.11.29(旧版)。客户应尽可能使用版本 2019.11.21(当前版),因为与 2017.11.29(旧版)相比,它提供了更大的灵活性、更高的效率并且消耗的写入容量更少。要确定正在使用的版本,请参阅确定您正在使用的全局表版本。 |
本节描述如何将全局表更新为版本 2019.11.21(当前版)。
开始前的准备工作
DynamoDB 全局表版本 2019.11.21(当前版)引入了以下要求:
-
副本表的全局二级索引必须在区域间保持一致。
-
副本表的加密设置必须在区域间保持一致。
-
副本表的生存时间(TTTL)设置必须在区域间保持一致。如果在副本表上启用了 TTL,则会复制 TTL 删除操作。
-
必须为所有副本表中的写入容量单位启用 DynamoDB auto scaling 或按需容量。
-
全局表控制层面操作(创建、删除、更新和描述)API 不同。有关更多信息,请参阅全局表:将多区域复制与 DynamoDB 结合使用。
DynamoDB 全局表版本 2019.11.21(当前版)引入了以下行为更改:
-
DynamoDB Streams 为每次写入只发布一条记录(而不是两条)。
-
对于新插入,不在项目记录中添加
aws:rep:*
属性。 -
对于包含
aws:rep:*
属性的项目更新,不会更新这些属性。 -
DynamoDB 映射器不得要求此表的
aws:rep:*
属性。 -
从版本 2017.11.29(旧版)更新到版本 2019.11.21(当前版)时,您可能会看到
ReplicationLatency
指标增加。这是因为版本 2019.11.21(当前版)捕获全局表区域之间复制延迟的完整端到端测量结果。有关更多信息,请参阅版本 2017.11.29(旧版)和版本 2019.11.21(当前版)的ReplicationLatency
版本文档。
所需的 权限
要更新到版本 2019.11.21(当前版),您必须具有跨副本区域的 dynamodb:UpdateGlobalTableVersion
权限。这些权限是访问 DynamoDB 控制台和查看表所必需的权限之外的权限。
下面的 IAM policy 授予将任何全局表更新到版本 2019.11.21(当前版)的权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableVersion", "Resource": "*" } ] }
下面的 IAM policy 授予仅将在两个区域中具有副本的 Music
全局表更新到版本 2019.11.21(当前版)的权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableVersion", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Music", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/Music", "arn:aws:dynamodb:us-east-2:123456789012:table/Music" ] } ] }
更新了过程概述
在更新过程中,全局表的状态从 ACTIVE 变为 UPDATING。
这个过程需要几分钟,但它应该在不到一个小时内完成。在更新过程中,您的表仍可用于读取和写入流量。但是,在更新过程中,Auto Scaling 不会更改表的预置容量。因此,在开始更新之前,我们建议您将表切换到按需容量。
如果您选择在更新时对 auto scaling 使用预置容量,则必须增加策略的最小读写吞吐量,以适应更新期间流量的预期增加。
更新过程完成后,表状态将返回到 ACTIVE。您可以通过使用 DescribeTable
来检查表的状态,或者使用 DynamoDB 控制台上面的表视图进行验证。
重要
-
从版本 2017.11.29(旧版)更新到版本 2019.11.21(当前版)是一次性操作,无法撤销。在继续更新之前,请确保您已执行所有必要的测试。尝试更新新创建的全局表之前,请等待最多 60 分钟。
-
在版本 2017.11.29(旧版)的全局表中,DynamoDB 执行了写入操作,以将三个属性插入到项目记录中。这些属性 (
aws:rep:*
) 用于实施复制和管理冲突解决方案。在版本 2019.11.21(当前版)的全局表中,复制活动是以原生方式管理的,不向用户公开。 -
只有通过 DynamoDB 控制台才能更新到版本 2019.11.21(当前版)。
正在更新到版本 2019.11.21(当前)
请按照以下步骤更新您的 DynamoDB 全局表版本,使用 Amazon Web Services Management Console。
将全局表更新到版本 2019.11.21(当前版)
-
打开 DynamoDB 控制台:https://console.aws.amazon.com/dynamodb/home
。 -
在控制台左侧的导航窗格中,选择表,然后选择要更新到版本 2019.11.21(当前版)的全局表。
-
选择 Global Tables (全局表) 选项卡。
-
选择 Update version (更新版本)。
-
阅读并同意新要求,然后选择 Update version (更新版本)。
重要
从版本 2017.11.29(旧版)更新到版本 2019.11.21(当前版)是一次性操作,无法撤销。在开始更新之前,请确保您执行了所有必需的测试。
-
更新过程完成后,控制台上显示的全局表版本将更改为 2019.11.21。