ich einen Tisch und GSI in Dynamos zu schaffen, um diese Parameter verwenden, gemäß der Dokumentation:Abfragen eines globalen Sekundärindex in DynamoDB Lokale
configId ist der Primärschlüssel der Tabelle, und ich bin mit dem publisherID als .
{ TableName: 'Configs',
IndexName: 'publisher_index',
KeyConditionExpression: 'publisherId = :pub_id',
ExpressionAttributeValues: { ':pub_id': { S: '700' } } }
aber i: der Primärschlüssel für die GSI
var params = {
TableName: 'Configs',
KeySchema: [
{
AttributeName: 'configId',
KeyType: 'HASH',
}
],
AttributeDefinitions: [
{
AttributeName: 'configId',
AttributeType: 'S',
},
{
AttributeName: 'publisherId',
AttributeType: 'S',
}
],
GlobalSecondaryIndexes: [
{
IndexName: 'publisher_index',
KeySchema: [
{
AttributeName: 'publisherId',
KeyType: 'HASH',
}
]
}
]
};
ich Abfrage dieser Tabelle mit dieser (ich habe einige unnötige Konfigurationsparameter der Kürze entfernt) Behalten Sie den Fehler: "ValidationException: Ein oder mehrere Parameterwerte waren ungültig: Bedingung Parameter Typ stimmt nicht mit Schematyp überein"
In den Dokumenten legt es fest, dass der primäre KeyType entweder HASH oder RANGE sein kann, und dass Sie festlegen der attributeType im Feld attributeDefinitions. Ich sende die publisherId als String, nicht sicher, was ich hier vermisse.
Ist das Problem in der Art, wie ich die Tabelle erstellen oder die Art, wie ich abfrage? Dank
Ich würde einen Aufruf describeTable auf den 'Configs' machen, um zu überprüfen, dass der Sekundärindex wie erwartet erstellt wurde. –