Каков предел скорости для Google Vault Api?

Я пытаюсь создать запрос на экспорт для всех пользователей в моей организации с помощью Google Vault API на python.

Я попытался замедлить свои запросы API с помощью time.sleep(x). Я попытался изменить сценарий, чтобы он работал по одной учетной записи за раз, с ручным запуском указанного сценария.

if not result:
        print('No matters found.')
    else:
        #error checking for user list
        if not emails:
            print("missing users list")
        else:
            for user in emails:
                req = {
                        "name":user,
                        "query":{
                            "corpus":'DRIVE',
                            "dataScope":'ALL_DATA',
                            "searchMethod":'ACCOUNT',
                            "accountInfo":{
                                "emails":[user]
                                }
                            }
                        }
            #create drive export request
                userReq = vaultservice.matters().exports().create(matterId=matters[0]['matterId'],body=req).execute()
                print ("completed request: {0}".format(user))
                time.sleep(10)

Когда я выполнял экспорт всей организации, создается гигантский zip-файл, который бесполезен, потому что я не знаю, что кому принадлежит. Затем я попытался создать отдельные запросы на экспорт.

При использовании текущего скрипта я вижу эту ошибку: "Превышена квота для метрики квоты 'vault.googleapis.com/export_writes' и ограничена 'ExportWritesPerMinutePerProject' службы 'vault.googleapis.com'"

Иногда я успешно выполняю один экспорт, иногда два, но потом возникает ошибка. Каков предел скорости для Google Vault или как еще мне выполнить свою задачу?

Обновление Я только что запустил панель управления API и обнаружил, что лимит квоты по умолчанию для экспортных записей составляет 20 в минуту. Однако тогда я не понимаю, почему я столкнулся с проблемой ограничения. Даже с измененным засыпанием (60) перед созданием экспорта он достигает пика в 20 запросов и ограничивает меня. Думаю, я не понимаю, почему мой скрипт создает так много запросов в секунду, когда я считаю, что он должен создавать только один.

3 ответа

Похоже, у Google есть проблема с измерением запросов. Они считают, что на один запрос отправлено 10 запросов. Таким образом, вы должны оставаться ниже 2 запросов в минуту. Например, используйте задержку в 31 секунду в вашем коде.

Это потому, что вы достигли предела. Операции записи экспорта не учитываются как одно обращение к API для каждого обращения. Он учитывает 10 попаданий при экспортной записи, когда вы создаете экспорт с использованием API. Таким образом, после 2 обращений вы израсходуете квоту на 20 экспортных записей, а для третьего запроса вы получите ответ о превышении квоты. Вы можете проверить следующую ссылку, чтобы проверить, как Google считает каждый Обращение к API для каждой квоты [1]: https://developers.google.com/vault/limits .

Это действительно проблема с измерителем API Google, и эту проблему легко воспроизвести. Использование собственного образца кода Google и его трехкратное выполнение приведет к достижению предела в 20 ExportWritesPerMinutePerProject всего за 3 попытки.

Google Issue Tracker работает уже более 2 лет - https://issuetracker.google.com/issues/131206384

Другие вопросы по тегам