예제 #1
0
        /// <summary>
        /// 指定されたログファイルをRDSからダウンロードし、指定されたタイムスタンプでファイルを作成します。
        /// </summary>
        /// <param name="download_log_file_name">RDSからダウンロードするファイル名</param>
        /// <param name="save_log_file_name">保存するログファイル名</param>
        /// <param name="dt_timestamp">ログファイルにセットするタイムスタンプ</param>
        private void get_log_data(string download_log_file_name, string save_log_file_name, DateTime dt_timestamp)
        {
            bool   additional_data_pending = true; //続きのデータがあるかのフラグ
            string marker          = "0:0";        //取得するデータの区切り文字
            int    number_of_lines = 0;            //取得する先頭ブロック指定

            //ファイルに保存
            using (StreamWriter sw = new StreamWriter(save_log_file_name, true))
            {
                while (additional_data_pending)
                {
                    DownloadDBLogFilePortionRequest  request = new DownloadDBLogFilePortionRequest();
                    DownloadDBLogFilePortionResponse ret;
                    request.DBInstanceIdentifier = db_instance_identifier;
                    request.LogFileName          = download_log_file_name;
                    request.Marker        = marker;
                    request.NumberOfLines = number_of_lines;

                    ret = rds_client.DownloadDBLogFilePortion(request);

                    //ファイル書き込み
                    if (ret.LogFileData != null)
                    {
                        sw.Write(ret.LogFileData);
                    }

                    additional_data_pending = ret.AdditionalDataPending; //続きのデータがあるかのフラグ
                    marker = ret.Marker;                                 //続きのデータを区切るマーカーセット
                }
            }
            //タイムスタンプ更新
            File.SetCreationTime(save_log_file_name, dt_timestamp);
            File.SetLastWriteTime(save_log_file_name, dt_timestamp);
        }
예제 #2
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonRDSConfig config = new AmazonRDSConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonRDSClient client = new AmazonRDSClient(creds, config);

            DownloadDBLogFilePortionResponse resp = new DownloadDBLogFilePortionResponse();

            do
            {
                DownloadDBLogFilePortionRequest req = new DownloadDBLogFilePortionRequest
                {
                    Marker = resp.Marker
                    ,
                    NumberOfLines = maxItems
                };

                resp = client.DownloadDBLogFilePortion(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.LogFileData)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.Marker));
        }