CDKのインターフェースが分かりづらく、ググってもなかなか見つからなかったためシェアします。
コード
const bookTable = new dynamodb.Table(this, 'BookTable', {
partitionKey: {
name: 'PK',
type: dynamodb.AttributeType.STRING
},
sortKey: {
name: 'SK',
type: dynamodb.AttributeType.STRING
},
stream: dynamodb.StreamViewType.NEW_IMAGE
})
const bookTableReadCapacity = bookTable.autoScaleReadCapacity({
minCapacity: 1,
maxCapacity: 3
})
bookTableReadCapacity.scaleOnUtilization({
targetUtilizationPercent: 80
})
const bookTableWriteCapacity = bookTable.autoScaleWriteCapacity({
minCapacity: 1,
maxCapacity: 3
})
bookTableWriteCapacity.scaleOnUtilization({
targetUtilizationPercent: 80
})
bookTable.addGlobalSecondaryIndex({
indexName: 'bookId_index',
partitionKey: {
name: 'BookId',
type: dynamodb.AttributeType.STRING
},
sortKey: {
name: 'SK',
type: dynamodb.AttributeType.STRING
}
})
bookTable.autoScaleGlobalSecondaryIndexReadCapacity('bookId_index', {
minCapacity: 1,
maxCapacity: 3
}).scaleOnUtilization({
targetUtilizationPercent: 80
})
bookTable.autoScaleGlobalSecondaryIndexWriteCapacity('bookId_index', {
minCapacity: 1,
maxCapacity: 3
}).scaleOnUtilization({
targetUtilizationPercent: 80
})
追伸
こちらの記事の流れで実施したのですが、DynamoDBの詳細は本旨でなかったため、別記事にしました。