Amazon dynamodb GSI全局二级索引上是否允许使用AWS DynamoDB稀疏索引?

Amazon dynamodb GSI全局二级索引上是否允许使用AWS DynamoDB稀疏索引?,amazon-dynamodb,amazon-dynamodb-index,Amazon Dynamodb,Amazon Dynamodb Index,因此,对于一个非常简单的DynamoDB表,主键是: 地址:字符串(例如:“1某地、某市、某县” 还有一个GSI:Postcode:string 如果我试图手动将一个项目添加到表中,仅使用地址字段而没有邮政编码,则会引发错误:一个或多个参数值无效。不支持为辅助索引键指定的值。键属性的AttributeValue不能包含空字符串值。IndexName:Postcode,IndexKey:Postcode 我假设稀疏GSI是根据以下条件允许的: 因此,如果我们设置GSI,那么该字段是否需要包含在表中

因此,对于一个非常简单的DynamoDB表,主键是: 地址:字符串(例如:“1某地、某市、某县”

还有一个GSI:Postcode:string

如果我试图手动将一个项目添加到表中,仅使用地址字段而没有邮政编码,则会引发错误:一个或多个参数值无效。不支持为辅助索引键指定的值。键属性的AttributeValue不能包含空字符串值。IndexName:Postcode,IndexKey:Postcode

我假设稀疏GSI是根据以下条件允许的:


因此,如果我们设置GSI,那么该字段是否需要包含在表中的每个项目上?

您不需要在表中的每个项目上指定GSI键。从错误中可以看出,Postcore似乎被设置为空字符串(而不是根本不存在).Csn您可以分享您是如何执行插入的吗?感谢@SethGeoghegan yes,这让我想到了这个问题。.这正是您尝试通过aws web控制台手动添加项目的时候,如果您不“删除”这些字段(在控制台中),并且在控制台中以我的无服务器模板yaml中指定的所有字段显示在控制台中,这会很有帮助如果您没有将非空字符串应用于,则它认为您正在尝试分配空字符串!我假设它将默认为空字段,而不是空字符串-似乎您不能安全地假设它不是必填字段!谢谢SethI和您一样尝试,您为我节省了一些时间,谢谢:)您不需要在表中的每个项目上指定GSI键。从错误中可以看出,Postcore似乎被设置为空字符串(而不是根本不存在)。Csn您可以分享您是如何执行插入的吗?谢谢@SethGeoghegan是的,这让我想到了这个问题。。仅当您尝试通过aws web控制台手动添加项目,并且在控制台中显示my serverless template yaml中指定的所有字段时,如果您没有“删除”那些未应用非空字符串的字段(在控制台中),则它认为您正在尝试分配空字符串!我假设它将默认为空字段而不是空字符串-因为看起来您不能安全地假设它不是必填字段!谢谢SethI和你一样,你帮了我一些时间,谢谢:)