Поскольку get_all_launch_configurations
имеет ограничение по умолчанию 50 возвращаемых записей на вызов. Кажется, она не была специально задокументирована для этой функции boto2
, но аналогичная функция describe_launch_configurations
из boto3
упоминает, что:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling.html#AutoScaling.Client.describe_launch_configurations
Параметры
MaxRecords (целое число) - максимальное количество элементов, которые можно вернуть с этим
вызов. Значение по умолчанию - 50, а максимальное - 100.
NextToken (строка) - токен для следующего набора предметов
возвращать. (Вы получили этот токен от предыдущего вызова.)
Те же параметры поддерживаются boto2
get_all_launch_configurations()
под именами max_records
и next_token
, см. здесь .
Сначала позвоните с помощью NextToken=""
, и вы получите первые 50 (или до 100) конфигураций запуска. В возвращенных данных ищите значение NextToken
и продолжайте повторять вызов, пока возвращенные данные не вернутся без NextToken
.
Примерно так:
data = conn.get_all_launch_configurations()
process_lc(data['LaunchConfigurations'])
while 'NextToken' in data:
data = conn.get_all_launch_configurations(next_token=data['NextToken'])
process_lc(data['LaunchConfigurations'])
Надеюсь, это поможет:)
Кстати, если вы пишете новый скрипт, попробуйте написать его в boto3 , поскольку это текущая и рекомендуемая версия.
Обновление - boto2 против boto3:
Похоже, boto2 не возвращает NextToken
в списке возвращаемых значений. Используйте boto3 , это лучше и логичнее, правда:)
Вот настоящий скрипт, который работает:
#!/usr/bin/env python3
import boto3
def process_lcs(launch_configs):
for lc in launch_configs:
print(lc['LaunchConfigurationARN'])
client = boto3.client('autoscaling')
response = client.describe_launch_configurations(MaxRecords=1)
process_lcs(response['LaunchConfigurations'])
while 'NextToken' in response:
response = client.describe_launch_configurations(MaxRecords=1, NextToken=response['NextToken'])
process_lcs(response['LaunchConfigurations'])
Я намеренно установил MaxRecords=1
для тестирования, увеличьте его до 50 или 100 в вашем реальном скрипте.