2014-01-18 3 views
0

Я знакомлюсь с Cloud SQL API (v1beta1). Я пытаюсь обновить authorizedNetworks (sql.instances.update), и я использую API explorer. Я думаю, что мое тело запроса выполнено, за исключением 'settingsVersion'. Согласно документам, это должно быть:Cloud API API Explorer, settingsVersion

Версия настроек экземпляра. Это обязательное поле для обновления метода , чтобы убедиться, что одновременные обновления обрабатываются должным образом. Во время обновления используйте самые последние значения параметров настройки для этого экземпляра и не пытайтесь обновить это значение. Источник: https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/update

Я не нашел ничего полезного, связанные с settingsVersion. Когда я пытаюсь с различными srings, вместо того, чтобы получать 200 и ответ, я получаю 400 и:

«сообщение»: «Недопустимое значение: ожидается знаковое долго, получил„“(класс java.lang. String)»

Если вставку случайного числа, я получаю 412 (Предпосылка не удалось), а также:

"сообщение": "Состояние не соответствует".

Где я могу получить versionSettings и что такое длинная строка с подписью?

ответ

3

Вы должны выполнить операцию GET на вашем экземпляре и выбрать текущие настройки, эти параметры будут содержать текущий номер версии, вы должны использовать это значение.

Это делается для того, чтобы избежать непреднамеренных настроек.

Например, если два человека получить текущее состояние экземпляра, который имеет версию 1, и они оба пытаются изменить что-то другое (например, один хочет изменить tier, а другой хочет изменить pricingPlan), выполнив Update, второй для отправки запроса отменяет изменение первого, если операция разрешена. Однако, поскольку номер версии увеличивается каждый раз, когда выполняется операция обновления, как только первый человек обновляет экземпляр, запрос второго лица будет терпеть неудачу, потому что номер версии больше не соответствует.