単純なクエリ リクエストの作成に問題があります。ここでは、グローバル セカンダリ インデックスを使用してクエリを実行する方法の例を示します。この場合、主キーだけがあり、テーブルからクエリを実行したいと考えています。これは現在私が得ているエラーです:
Query condition missed key schema element: id
これが私が現在試していることです:
var params = {
TableName : "XactRemodel-7743-DynamoDBImagesTable-8183NQ0UG0Y5",
KeyConditionExpression: 'HashKey = :hkey',
ExpressionAttributeValues: {
':hkey': event.projectId
}
};
documentClient.query(params, function(err, data) {
if (err) {
console.log(err)
} else {
console.log(data);
}
});
この例では、セカンダリ インデックス名に対応する「indexName」が使用されていることを知っています。それらのキースキーマにはそのような属性がないようです。
これは、私のテーブルが YAML ファイルで定義されているように見えるものです:
DynamoDBImagesTable:
Type: AWS::DynamoDB::Table
Properties:
BillingMode: PAY_PER_REQUEST
SSESpecification:
SSEEnabled: true
PointInTimeRecoverySpecification:
PointInTimeRecoveryEnabled: true
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: companyId
AttributeType: S
- AttributeName: lastModified
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
GlobalSecondaryIndexes:
- IndexName: companyId-index
KeySchema:
- AttributeName: companyId
KeyType: HASH
- AttributeName: lastModified
KeyType: RANGE
Projection:
ProjectionType: ALL
私は何が欠けていますか?