DynamoDBでページネーション実装する場合、RDBの様に柔軟なクエリ操作ができませんがlimit/offsetを工夫することで構築可能です。
limitで取得するItem数を指定し、事前に取得したLastEvaluatedKeyをExclusiveStartKeyに指定することでページネーションを実装することができます。
今回はDynamoDB実装を簡素化できるPynamoDBでページネーション実装してみましたがどうもうまく参照できない。
PynamoDBページネーション実装 見出しへのリンク
どうやらPynamoDBではexclusive_start_keyではなくlast_evaluated_keyを指定することが正しい。 pynamodb.readthedocs
_summaries = HogeModel.hoge_id-data_type-index.query(
_hoge_id,
HogeModel.data_type.startswith(_data_type),
scan_index_forward=False,
limit=limit,
last_evaluated_key=_last_evaluated_key,
)
Noneを渡すことでOffsetを無効にすることができます。
またscan_index_forward=FalseはSKでの降順を意味します。