0

単純なクエリ リクエストの作成に問題があります。ここでは、グローバル セカンダリ インデックスを使用してクエリを実行する方法の例を示します。この場合、主キーだけがあり、テーブルからクエリを実行したいと考えています。これは現在私が得ているエラーです:

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

私は何が欠けていますか?

4

1 に答える 1