1

関数 ListMetrics を使用して、CloudWatch に保存されているすべてのメトリクスを一覧表示しようとしています。この関数は、約 500 のメトリックと、残りのメトリックを取得するために次の呼び出しで使用される NextToken という文字列値を返します。

これは以下のコードですが、NextToken を使用して残りのメトリックを取得する方法がわかりません。

  // creates the CloudWatch client
            var cw = Amazon.AWSClientFactory.CreateAmazonCloudWatchClient(Amazon.RegionEndpoint.EUWest1);
        // initialses the list metrics request
        ListMetricsRequest lmr = new ListMetricsRequest();
        ListMetricsResponse lmresponse = cw.ListMetrics(lmr);



        // loop that uses the token to get all the metrics available
        // not finished yet
        do
        {
            lmresponse = cw.ListMetrics(lmr);
            lmresponse.NextToken;

        } while (lmresponse.NextToken != null);

残りのメトリックを取得するために NextToken を使用する方法を知りたいです。残念ながら、オンラインで例を見つけることができませんでした。

4

3 に答える 3

1

応答に NextToken がある場合は、次の要求でそれを使用できます。

// creates the CloudWatch client
var cw =  Amazon.AWSClientFactory.CreateAmazonCloudWatchClient(Amazon.RegionEndpoint.EUWest1);
// initialses the list metrics request
ListMetricsRequest lmr = new ListMetricsRequest();
ListMetricsResponse lmresponse = cw.ListMetrics(lmr);

while (lmresponse.NextToken != null);
{
    // set request token 
    lmr.NextToken = lmresponse.NextToken;
    lmresponse = cw.ListMetrics(lmr);

    // Process metrics found in lmresponse.Metrics
} 
于 2014-08-11T22:24:25.587 に答える
1

これを do-while ループに入れると、ListMetrics 関数が呼び出され続け、nextToken が null でない限り、すべてのメトリックが一覧表示されます。

private string nextToken;

do
{
  lmrequest.NextToken = nextToken;
  lmresponse = cloudwatch.ListMetrics(lmrequest);
  nextToken = lmresponse.NextToken;
} while (nextToken != null);
于 2014-08-13T12:52:24.123 に答える
0

メトリックのリスト全体をループする必要がある場合は、foreachループを使用します。コードは次のようになります。

        // creates the CloudWatch client
        var cw = Amazon.AWSClientFactory.CreateAmazonCloudWatchClient(Amazon.RegionEndpoint.EUWest1);
        // initialses the list metrics request
        ListMetricsRequest lmr = new ListMetricsRequest();
        ListMetricsResponse lmresponse = cw.ListMetrics(lmr);

        foreach (Metric metric in lmresponse.Metrics)
        {
            // do something with
            // metric.MetricName;
            // metric.Dimensions;
            // etc
        }
于 2014-07-24T14:10:46.420 に答える