Boto3 не возвращает все записи description_compliance_by_config_rule в configservice - PullRequest
0 голосов
/ 29 ноября 2018

Когда я запускаю следующее с помощью интерфейса командной строки AWS, чтобы выяснить статус соответствия правилу AWS Config, я получаю ожидаемый ответ:

$ aws configservice describe-compliance-by-config-rule --config-rule-names vpc-flow-logs-enabled
{
    "ComplianceByConfigRules": [
        {
            "ConfigRuleName": "vpc-flow-logs-enabled",
            "Compliance": {
                "ComplianceType": "NON_COMPLIANT",
                "ComplianceContributorCount": {
                    "CappedCount": 2,
                    "CapExceeded": false
                }
            }
        }
    ]
}

Если я запускаю то, что я считаю, то же самое вPython Я получаю исключение botocore.errorfactory.NoSuchConfigRuleException:

import boto3

session = boto3.Session(profile_name='ops')
config = session.client('config',region_name='eu-west-1')
print config.describe_compliance_by_config_rule(ConfigRuleNames=['vpc-flow-logs-enabled'])

Полное исключение:

Traceback (most recent call last):
  File "./test.py", line 7, in <module>
    print config.describe_compliance_by_config_rule(ConfigRuleNames=['vpc-flow-logs-enabled'])
  File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 320, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 624, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchConfigRuleException: An error occurred (NoSuchConfigRuleException) when calling the DescribeComplianceByConfigRule operation: The ConfigRule 'vpc-flow-logs-enabled' provided in the request is invalid. Please check the configRule name.

В более широком контексте это то, что вызов describe_compliance_by_config_rule() возвращает только 16 из 50 правил,Похоже, что это не проблема разбивки на страницы, поскольку возвращаемый вывод не содержит NextToken.Когда обернуто в paginator, это возвращает только одну страницу.Пример кода Python возвращается правильно, если одно из 16 возвращенных правил проверено индивидуально.

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