Когда я запускаю следующее с помощью интерфейса командной строки 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 возвращенных правил проверено индивидуально.