Beispiel #1
0
    public async Task SnapshotRDS(Instant snapshotTime)
    {
        using AmazonRDSClient rdsClient = new AmazonRDSClient();
        var    date       = snapshotTime.InZone(TimeExtensions.EasternTimeZone).LocalDateTime.Date;
        var    dateString = date.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
        var    random     = Guid.NewGuid().ToString().Substring(0, 1);
        string snapName   = "AdminSnap-" + dateString + "-" + random;

        CreateDBSnapshotRequest request = new CreateDBSnapshotRequest(snapName, _instanceName);
        await rdsClient.CreateDBSnapshotAsync(request, CancellationToken.None);
    }
Beispiel #2
0
        public async Task SnapshotRDS(Instant snapshotTime)
        {
            using (AmazonRDSClient rdsClient = new AmazonRDSClient())
            {
                var    date       = snapshotTime.InZone(DateTimeZoneProviders.Tzdb.GetZoneOrNull("America/New_York")).LocalDateTime.Date;
                var    dateString = date.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
                var    random     = Guid.NewGuid().ToString().Substring(0, 1);
                string snapName   = "AdminSnap-" + dateString + "-" + random;

                CreateDBSnapshotRequest request = new CreateDBSnapshotRequest(snapName, _instanceName);
                await rdsClient.CreateDBSnapshotAsync(request, CancellationToken.None);
            }
        }
Beispiel #3
0
        public async Task <string> TakeSnapshot()
        {
            var rdsInstance = await GetRDSInstance();

            var instanceId = rdsInstance.DBInstanceIdentifier;
            //don't wrap in using block or it will be disposed before you are done with it.
            var rdsClient = new AmazonRDSClient(
                CredentiaslManager.GetCredential(environment),
                AwsCommon.GetRetionEndpoint(region));
            var request = new CreateDBSnapshotRequest($"{environment}-{DateTime.Today.ToShortDateString()}", instanceId);
            //don't await this long running task
            var response = await rdsClient.CreateDBSnapshotAsync(request);

            return(response.DBSnapshot.DBInstanceIdentifier);
        }