AmazonCloudWatch를 사용하여 CPU 사용률을 가져 오는 데 약간 문제가 있습니다. 내가 AmazonCloudWatch.GetMetricStatistics()를 사용하려고 할 때, 나는 예외 메시지이 얻을 :AWS : AmazonCloudWatch.GetMetricStatistics()에서 400 개의 잘못된 요청 오류가 발생했습니다.
Exception of type 'Amazon.CloudWatch.AmazonCloudWatchException' was thrown.
그리고 이것은 내부 예외을 위해 : 여기
{"The remote server returned an error: (400) Bad Request."}
나 '코드입니다 전화를 걸 때 사용 :
public static String getCPUStats(String Endpoint, String InstanceID)
{
try
{
AmazonCloudWatchConfig cloudConfig = new AmazonCloudWatchConfig();
cloudConfig.ServiceURL = Endpoint;
string AWSAccessKey = Sql.ToString(appConfig["AWSAccessKey"]);
string AWSSecretKey = Sql.ToString(appConfig["AWSSecretKey"]);
AmazonCloudWatch client = AWSClientFactory.CreateAmazonCloudWatchClient(AWSAccessKey, AWSSecretKey, cloudConfig);
GetMetricStatisticsRequest request = new GetMetricStatisticsRequest();
request.Dimensions.Add(new Dimension { Name = "InstanceId", Value = InstanceID });
request.StartTime = DateTime.UtcNow.AddMinutes(-5);
request.EndTime = DateTime.UtcNow;
request.Namespace = "AWS/EC2";
request.Statistics.Add("Maximum");
request.Statistics.Add("Average");
request.MetricName = "CPUUtilization";
request.Period = 60;
GetMetricStatisticsResponse r = client.GetMetricStatistics(request);
if (r.GetMetricStatisticsResult.Datapoints.Count > 0)
{
Datapoint dataPoint = r.GetMetricStatisticsResult.Datapoints[0];
return "CPU maximum load: " + dataPoint.Maximum;
}
return "No data available.";
}
catch (Exception ex)
{
return ex.Message;
}
}
일부 메모 - 액세스 키, 비밀 액세스 키 및 endp oint는 AmazonEC2Client를 만드는 데 잘 작동하므로 문제가 없다고 확신합니다.
나는 꽤 많은 검색을하고 문서를 보았지만이 문제를 성공적으로 해결하지 못했습니다. 어떤 아이디어? 정말 고마워!
제품의 마이크로 소프트 애저를 사용하기로 결정 결국 그입니다 "실제"Amazon 오류 메시지가 AWSSDK에서 손실되어 일반 .NET 400 (일명 "BadRequest")로 변환됩니다 ... 일부 DynamoDB 코드에서 이와 동일한 문제를 해결하려고합니다 ... 유일한 대답이라고 생각합니다. 피들러를 태우고 응답을 봅니다. – Scrappydog