AWS - 如何在AWSSDK for .NET中更改cloudwatchclient配置服务版本

aru*_*run 7 c# amazon-ec2 aws-sdk

我正在尝试使用CloudWatch获取特定亚马逊EC2实例的CPU百分比

我在执行代码时遇到此错误(见下文)

请求的AmazonEC2服务版本(2010-08-01)不存在"

我无法更改AmazonCloudWatchClient中的ServiceVersion,因为它具有 Read Only property

默认设置为 2010-08-01

我需要将ServiceVersion更改为 2014-10-01

请在下面找到配置

错误图片

这里配置文字

  var client = new AmazonCloudWatchClient(clientkey,secretkey,new     AmazonCloudWatchConfig{ServiceURL="url"})
  var dimension = new Dimension
        {
            Name = "instanceName",
            Value = "instanceID"
        };
  var request = new GetMetricStatisticsRequest
        {
            Dimensions = new List<Dimension>() { dimension },
            EndTime = DateTime.Today,
            MetricName = "CPUUtilization",
            Namespace = "AWS/EC2",
            // Get statistics by day.
            Period = (int)TimeSpan.FromDays(1).TotalSeconds,
            // Get statistics for the past month.
            StartTime = DateTime.Today.Subtract(TimeSpan.FromDays(30)),
            Statistics = new List<string>() { "Minimum" },
            Unit = StandardUnit.Percent              
        };

  var response = client.GetMetricStatistics(request);

        if (response.Datapoints.Count > 0)
        {
            foreach (var point in response.Datapoints)
            {
                Console.WriteLine(point.Timestamp.ToShortDateString() +
                  " " + point.Minimum + "%");
            }
        }
Run Code Online (Sandbox Code Playgroud)

Fré*_*nri 0

您认为为什么需要更改日期?

该属性确实没有设置器(请参阅代码),因此您无法使用此类属性定义配置。

我知道您不想透露您的信息,但您有什么

  var dimension = new Dimension
        {
            Name = "instanceName",
            Value = "instanceID"
        };
Run Code Online (Sandbox Code Playgroud)

名称应该是InstanceName,如果您使用您在值中指示的实例 ID,它应该InstanceId类似于

  var dimension = new Dimension
        {
            Name = "InstanceId"
            Value = "i-54cfb999"
        };
Run Code Online (Sandbox Code Playgroud)