Я использую API googleapiclient (Python), такие как images (). Get (), images (). Insert () и т. Д. Для отображения изображений, создания экземпляров виртуальных машин и т. Д.
В прошлом месяце было несколько ошибок ZONE_RESOURCE_POOL_EXHAUSTED из облака Google, что вызвало следующее исключение в моем коде
Exception: {'errors': [{'code': 'ZONE_RESOURCE_POOL_EXHAUSTED', 'message': "The zone 'projects/<project-name>/zones/us-central1-b' does not have enough resources available to fulfill the request. Try a different zone, or try again later."}]}
Я хочу обработать эту ошибку в своем коде, отправив уникальный код ошибки с моего сервера клиенту, чтобы повторить этот запрос через некоторое время, так как ошибка является временной.
Я не могу умышленно воспроизвести эту ошибку по той же причине ... что она временная
Я проверил код googleapi на GitHub на https://github.com/googleapis/google-api-python-client
но не смог найти ZONE_RESOURCE_POOL_EXHAUSTED
Мне нужно проверить, является ли это исключение типа "HttpError" или какой-либо другой класс, а затем может обработать это в моем коде
Я уже обрабатываю исключение типа googleapiclient.errors.HttpError в своем коде, напечатав сообщение об ошибке и подняв его как urllib.error.HTTPError (сервер отправляет код e.resp ['status'] для этого случая в клиент)
except HttpError as e:
printf('Failed to create %s: %s\n', instanceName,
e._get_reason())
raise HTTPError(
None, int(e.resp['status']), e._get_reason(), "", None)