При вызове
response = kinesis.describe_stream(StreamName='xxx')
возможно, слишком часто, есть ответ HTTP400 с LimitExceededException
.Неожиданным моментом является то, что botocore retryhandler считает, что для этого не требуется повтор
2018-11-14 13:51:02,771 urllib3.connectionpool [DEBUG] https://kinesis.us-east-1.amazonaws.com:443 "POST / HTTP/1.1" 400 122
2018-11-14 13:51:02,771 botocore.parsers [DEBUG] Response headers: {'x-amzn-RequestId': 'd2203136-53db-60ba-8646-41e0ed56783e', 'x-amz-id-2': 'xxxx', 'connection': 'close', 'Date': 'Wed, 14 Nov 2018 18:51:02 GMT', 'Content-Type': 'application/x-amz-json-1.1', 'Content-Length': '122'}
2018-11-14 13:51:02,771 botocore.parsers [DEBUG] Response body:
b'{"__type":"LimitExceededException","message":"Rate exceeded for stream xxxx under account xxxx"}'
2018-11-14 13:51:02,772 botocore.hooks [DEBUG] Event needs-retry.kinesis.DescribeStream: calling handler <botocore.retryhandler.RetryHandler object at 0x10aa4e940>
2018-11-14 13:51:02,772 botocore.retryhandler [DEBUG] No retry needed.
, даже несмотря на то, что код состояния http, код ошибки службы и операция соответствуют приведенной здесь политике: https://github.com/boto/botocore/blob/1.12.4/botocore/data/_retry.json#L174-L181
Повторные попыткидействительно происходит, если я изменяю строку 175 на __default__
, хотя это, вероятно, нежелательно, так как это отразило бы другие операции.Является ли мое ожидание того, как повторная попытка должна работать для DescribeStream, неверно?