AWSSimpleSystemsManagement описываетParameters возвращает только один параметр за один раз - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь получить список параметров из AWS, которые начинаются с определенного префикса.Я не мог понять, как получить все параметры.

ParametersFilter filter = 
 new ParametersFilter().
 withKey("Name").
 withValues("vyom"); // the key prefix i want

DescribeParametersRequest request = 
  new DescribeParametersRequest().withFilters(filter);

AWSSimpleSystemsManagement client =
  AWSSimpleSystemsManagementClientBuilder.defaultClient();

DescribeParametersResult result = 
  client.
    describeParameters(request);

List<ParameterMetadata> params =    
  result.
  getParameters(); // returns a list of size one

В DescribeParametersResult всегда установлен nextToken, и при повторном вызове клиента следующий токен возвращает следующий параметр.

Вызов aws cli из терминала возвращает все параметры, как я и ожидал.aws ssm describe-parameters --filters "Key=Name,Values=vyom"

1 Ответ

0 голосов
/ 04 декабря 2018

Я столкнулся с той же проблемой;кажется, работает как задумано.Из документов :

Результаты запроса возвращаются с максимальной отдачей.Если вы указываете MaxResults в запросе, ответ включает информацию до указанного предела.Однако количество возвращаемых элементов может быть от нуля до значения MaxResults.Если при обработке результатов служба достигает внутреннего предела, она останавливает операцию и возвращает совпадающие значения до этой точки и NextToken.Вы можете указать NextToken в последующем вызове, чтобы получить следующий набор результатов.

То есть: фильтрация применяется после подкачки.Если я установлю MaxResults на 50, то первая страница возвращает отфильтрованные результаты из первых 50 параметров, видимых в пользовательском интерфейсе консоли, вторая страница возвращает результаты из вторых 50 параметров и т. Д. CLI просто выполняет работу поперебирая страницы для вас.

Следующая проблема, с которой вы столкнетесь, когда начнете просматривать результаты, - это агрессивное регулирование.Здесь есть хорошее обсуждение здесь , включая гем:

Очевидно, что лучшим решением было бы увеличение ограничений скорости AWS, но они, похоже, очень не хотят делать это для DescribeParameters (они настаивают на том, что его следует использовать только для ручного запроса к CLI).

Godspeed!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...