AmazonCloudWatchを使用してCPU使用率を取得するのに少し問題があります。AmazonCloudWatch.GetMetricStatistics()を使用しようとすると、例外メッセージとして次のメッセージが表示されます。
タイプ「Amazon.CloudWatch.AmazonCloudWatchException」の例外がスローされました。
そしてこれは内部例外です:
{"リモートサーバーがエラーを返しました:(400)不正なリクエスト。"}
これが私が電話をかけるために使用しているコードです:
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;
}
}
いくつかの補足事項-アクセスキー、シークレットアクセスキー、およびエンドポイントは、AmazonEC2Clientを作成するために正常に機能するため、問題はないと確信しています。
私はドキュメントをかなり調べて調べましたが、これを解決することに成功していません。何か案は?本当にありがとう!