使用 AWS CLI 将使用 Json 文件的项目放入 AWS DynamoDB 时出错
Error to put Items using Json File in AWS DynamoDB using AWS CLI
我正在尝试使用 batch-write-item 通过 CLI 将项目添加到 dynamodb 但收到错误:
“调用 BatchWriteItem 操作时发生错误 (ValidationException):提供的关键元素与架构不匹配”。
我正在使用来自 AWS docs 的示例 JSON 作为参考。
知道遗漏了什么吗?
{
"VertexMasterData":[
{
"PutRequest":{
"Item":{
"MasterDataID":{
"S":"0"
},
"ScenarioID":{
"S":"1"
},
"FlexibleFields":{
"M":{
"@fieldId4":{
"S":"4"
},
"@fieldId1":{
"S":"8517.12.31"
}
}
},
"Seller":{
"M":{
"MainDivision":{
"S":"SP"
}
}
},
"Destination":{
"M":{
"MainDivision":{
"S":"RJ"
}
}
}
}
}
},
{
"PutRequest":{
"Item":{
"MasterDataID":{
"S":"1"
},
"ScenarioID":{
"S":"1"
},
"FlexibleFields":{
"M":{
"@fieldId4":{
"S":"1"
},
"@fieldId1":{
"S":"3403.99.00"
}
}
},
"Seller":{
"M":{
"MainDivision":{
"S":"SP"
}
}
},
"Destination":{
"M":{
"MainDivision":{
"S":"AC"
}
}
}
}
}
},
{
"PutRequest":{
"Item":{
"MasterDataID":{
"S":"2"
},
"ScenarioID":{
"S":"1"
},
"FlexibleFields":{
"M":{
"@fieldId4":{
"S":"1"
},
"@fieldId1":{
"S":"3506.10.90"
}
}
},
"Seller":{
"M":{
"MainDivision":{
"S":"SP"
}
}
},
"Destination":{
"M":{
"MainDivision":{
"S":"AC"
}
}
}
}
}
}
]
}
Table 详情:VertexMasterData
您的记录似乎不包含一个或多个主键值。当您创建 VertexMasterData table 时,您会指定一个分区键,也可能指定一个排序键。添加到该 table 的任何记录都必须包含您的主键(所有其他字段都是可选的),它可以是一个或两个字段。
要查看您的 table 的分区键和排序键,请转至 AWS 控制台 > DynamoDb > 表。
在 JSON 中我没有考虑的分区键末尾有一个 space:
Table: "MasterDataID"
JSON: "MasterDataID"
我正在尝试使用 batch-write-item 通过 CLI 将项目添加到 dynamodb 但收到错误: “调用 BatchWriteItem 操作时发生错误 (ValidationException):提供的关键元素与架构不匹配”。
我正在使用来自 AWS docs 的示例 JSON 作为参考。
知道遗漏了什么吗?
{
"VertexMasterData":[
{
"PutRequest":{
"Item":{
"MasterDataID":{
"S":"0"
},
"ScenarioID":{
"S":"1"
},
"FlexibleFields":{
"M":{
"@fieldId4":{
"S":"4"
},
"@fieldId1":{
"S":"8517.12.31"
}
}
},
"Seller":{
"M":{
"MainDivision":{
"S":"SP"
}
}
},
"Destination":{
"M":{
"MainDivision":{
"S":"RJ"
}
}
}
}
}
},
{
"PutRequest":{
"Item":{
"MasterDataID":{
"S":"1"
},
"ScenarioID":{
"S":"1"
},
"FlexibleFields":{
"M":{
"@fieldId4":{
"S":"1"
},
"@fieldId1":{
"S":"3403.99.00"
}
}
},
"Seller":{
"M":{
"MainDivision":{
"S":"SP"
}
}
},
"Destination":{
"M":{
"MainDivision":{
"S":"AC"
}
}
}
}
}
},
{
"PutRequest":{
"Item":{
"MasterDataID":{
"S":"2"
},
"ScenarioID":{
"S":"1"
},
"FlexibleFields":{
"M":{
"@fieldId4":{
"S":"1"
},
"@fieldId1":{
"S":"3506.10.90"
}
}
},
"Seller":{
"M":{
"MainDivision":{
"S":"SP"
}
}
},
"Destination":{
"M":{
"MainDivision":{
"S":"AC"
}
}
}
}
}
}
]
}
Table 详情:VertexMasterData
您的记录似乎不包含一个或多个主键值。当您创建 VertexMasterData table 时,您会指定一个分区键,也可能指定一个排序键。添加到该 table 的任何记录都必须包含您的主键(所有其他字段都是可选的),它可以是一个或两个字段。
要查看您的 table 的分区键和排序键,请转至 AWS 控制台 > DynamoDb > 表。
在 JSON 中我没有考虑的分区键末尾有一个 space: Table: "MasterDataID" JSON: "MasterDataID"