/// <summary> /// Exports the data from DynamoDB to S3 /// </summary> /// <param name="tableArn"></param> /// <param name="bucket"></param> /// <returns></returns> private async Task <ExportTableToPointInTimeResponse> ExportDataFromDynamoDB(string tableArn, string bucket) { DescribeContinuousBackupsResponse latestBackup = await ddbClient.DescribeContinuousBackupsAsync(new DescribeContinuousBackupsRequest() { TableName = tableArn.Split('/').Last() }); this._context.LogInfo($"Restoring table ${tableArn} to {bucket} at restore point {latestBackup.ContinuousBackupsDescription.PointInTimeRecoveryDescription.LatestRestorableDateTime}."); return(await ddbClient.ExportTableToPointInTimeAsync(new ExportTableToPointInTimeRequest() { ExportFormat = ExportFormat.ION, TableArn = tableArn, S3Bucket = bucket, ExportTime = latestBackup.ContinuousBackupsDescription.PointInTimeRecoveryDescription.LatestRestorableDateTime })); }
private Amazon.DynamoDBv2.Model.DescribeContinuousBackupsResponse CallAWSServiceOperation(IAmazonDynamoDB client, Amazon.DynamoDBv2.Model.DescribeContinuousBackupsRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon DynamoDB", "DescribeContinuousBackups"); try { #if DESKTOP return(client.DescribeContinuousBackups(request)); #elif CORECLR return(client.DescribeContinuousBackupsAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }