Azure storage tableから1000件以上のデータを取得する方法
queryEntitiesは最大1000件までしか取得できない。 continuationTokeを使うことで1000件以上のデータを取得することができる
exports.getDataFromStorageServiceAsync = async function getAllFromTable(key) { let account = ""; let access_key = ""; var tableService = azure.createTableService(account, access_key); var query = new azure.TableQuery() .where('PartitionKey eq ?', key); var continuationToken = null; var entities = []; do { var results = await queryEntitiesSegmented(process.env["TABLE_NAME"], tableService, query, continuationToken); continuationToken = results.continuationToken; entities.push.apply(entities, results.entries); } while (continuationToken != null); return entities; } const queryEntitiesSegmented = async (table, tableService, tableQuery, continuationToken) => { return new Promise((resolve, reject) => { tableService.queryEntities(table, tableQuery, continuationToken, (error, results) => { if (error) { reject(error); } else { resolve(results); } }); }); }