public override async Task DoAction(string RoleARN)
        {
            await base.DoAction(RoleARN);

            var logger = LogManager.GetCurrentClassLogger();

            Parallel.ForEach(SharedLibrary.Utilities.GetRegions(), (region) =>
            {
                logger.Debug($"Checking RDS instances in region {region.DisplayName }");
                var creds = SharedLibrary.Utilities.AssumeRole(RoleARN, region);

                Amazon.RDS.AmazonRDSClient client = new Amazon.RDS.AmazonRDSClient(creds, region);

                var describeResult = client.DescribeDBInstancesAsync(new DescribeDBInstancesRequest {
                    MaxRecords = 100
                }).Result;

                foreach (var instance in describeResult.DBInstances)
                {
                    if (instance.DBInstanceStatus != "deleting")
                    {
                        var deleteDBInstanceResult = client.DeleteDBInstanceAsync(new DeleteDBInstanceRequest {
                            SkipFinalSnapshot = true, DeleteAutomatedBackups = true, DBInstanceIdentifier = instance.DBInstanceIdentifier
                        }).Result;

                        if (deleteDBInstanceResult.HttpStatusCode == System.Net.HttpStatusCode.OK)
                        {
                            logger.Debug($"Deleted RDS instance {instance.DBInstanceIdentifier} in region {region.DisplayName }");
                        }
                    }
                }
            });
        }
示例#2
0
        } // main

        //Purpose
        //  This task connects to your AWS account and reads the names of your DB instances
        //  This task looks for DB instances in one Region only
        //
        //Outputs
        //  This task writes the names of your DB instances to the console
        //
        public static async Task CheckRDSInstances()
        {
            Amazon.RDS.AmazonRDSClient client;
            Amazon.RDS.Model.DescribeDBInstancesRequest  request;
            Amazon.RDS.Model.DescribeDBInstancesResponse response;

            client  = new Amazon.RDS.AmazonRDSClient();
            request = new Amazon.RDS.Model.DescribeDBInstancesRequest();

            response = await client.DescribeDBInstancesAsync(request);

            if (response.DBInstances.Count > 0)
            {
                foreach (Amazon.RDS.Model.DBInstance i in response.DBInstances)
                {
                    Console.WriteLine(i.DBInstanceIdentifier);
                }
            }
            else
            {
                Console.WriteLine("You don't have any DB instances in this region.");
            }
        }