Пример #1
0
        /// <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
            }));
        }
Пример #2
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            DescribeContinuousBackupsResponse response = new DescribeContinuousBackupsResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("ContinuousBackupsDescription", targetDepth))
                {
                    var unmarshaller = ContinuousBackupsDescriptionUnmarshaller.Instance;
                    response.ContinuousBackupsDescription = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }