in src/ExportJournal.ts [130:163]
export async function createExportAndWaitForCompletion(
ledgerName: string,
bucketName: string,
prefix: string,
encryptionConfig: S3EncryptionConfiguration,
roleArn: string,
qldbClient: QLDB
): Promise<ExportJournalToS3Response> {
if (roleArn === null) {
roleArn = await createExportRole(EXPORT_ROLE_NAME, encryptionConfig.KmsKeyArn, ROLE_POLICY_NAME, bucketName);
}
try {
const exclusiveEndTime: Date = new Date();
const inclusiveStartTime: Date = new Date(exclusiveEndTime);
inclusiveStartTime.setMinutes(exclusiveEndTime.getMinutes() - 10);
const result: ExportJournalToS3Response = await createExport(
ledgerName,
inclusiveStartTime,
exclusiveEndTime,
bucketName,
prefix,
encryptionConfig,
roleArn,
qldbClient
);
await waitForExportToComplete(ledgerName, result.ExportId, qldbClient);
log(`JournalS3Export for exportId ${result.ExportId} is completed.`);
return result;
} catch (e) {
error("Unable to create an export!");
throw e;
}
}