DynamoDB - 无法读取项目:提供的关键元素与模式不匹配

DynamoDB - Unable to read item: The provided key element does not match the schema

我的代码:

def query_consulta_token(holder_id) dynamodb = Aws::DynamoDB::Client.new

table_name = "pix_owner_confirmation_token"

holder_id = holder_id

params = {
  table_name: table_name,
  key: {
    holder_id: holder_id,
  },
}

begin
  result = dynamodb.get_item(params)
  puts "%s - %s",
       result.item["holder_id"],
       result.item["address"],
       result.item["token"]
rescue Aws::DynamoDB::Errors::ServiceError => error
  puts "Unable to read item:"
  puts "#{error.message}"
  binding.pry
end

结束

我的结果: 无法读取项目: 提供的关键元素与架构不匹配

您发送给 get_item 的参数指定了一个名为 holder_id 的主键:

params = {
  table_name: table_name,
  key: {
    holder_id: holder_id,
  }
}

但是,您评论说您的 table 有一个名为 token 的主键。要解决此问题,您需要在参数中提供主键的名称:

params = {
  table_name: table_name,
  key: {
    token:<your token here>,
  }
}