Я строю систему, которая много работает с AWS, используя boto3 в python, и мне нужно регистрировать каждую ошибку, возникающую в процессе работы.
Я знаю, как отлавливать клиентские ошибки (если существует, представленный с использованием кода 4XX Http), но мне не удалось найти способ отловить ошибку сервера и получить их код Http (5XX)
На данный момент у меня есть этот код:
start = time.time()
try:
# This can be any boto3 function, create volume is just an example
boto3.client('ec2').create_volume(...)
except ClientError as e:
# Collect all required data
end = time.time()
http_code = e.response.get('ResponseMetadata', {}).get('HTTPStatusCode')
retry_attempts = e.response.get('ResponseMetadata', {}).get('RetryAttempts')
# Log error with the collected data
log_error(tag, f'{type(e)}: {e}', http_code=http_code, response_time=end - start,
retry_attempts=retry_attempts)
except BotoCoreError as e:
# Collect all required data
end = time.time()
# Log error with the collected data
log_error(tag, f'{type(e)}: {e}', response_time=end - start)
Есть ли способ отловить ошибку сервера и получить код Http, аналогичный тому, что я сделал с ошибкой клиента?