我已经熟悉了云SQL API(v1beta1)。我正在尝试更新authorizedNetworks(sql.instances.update),并使用API资源管理器。我认为除了"设置版本"之外,我的请求正文还可以。根据文件,它应该是:
实例设置的版本。这是更新的必填字段方法,以确保正确处理并发更新。在期间更新,使用此实例的最新设置版本值并且不要尝试更新此值。来源:https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/update
我没有发现任何与settingsVersion相关的有用信息。当我尝试不同的srings时,我得到的不是200和响应,而是400和:
"message":"的值无效:应为带符号的long,实际为''(类java.lang.String)">
如果插入随机数,我得到412(前提条件失败)和:
"消息":"条件不匹配。">
从哪里获取versionSettings?什么是带符号的长字符串?
您应该对实例执行GET操作并获取当前设置,这些设置将包含当前版本号,您应该使用该值。
这样做是为了避免无意中覆盖设置。
例如,如果两个人获得了版本为1
的当前实例状态,并且他们都试图通过执行Update
操作来更改某些不同的内容(例如,一个想要更改tier
,另一个想要修改pricingPlan
),则如果允许该操作,则发送请求的第二个人将撤消对第一个人的更改。然而,由于每次执行更新操作时版本号都会增加,因此一旦第一个人更新了实例,第二个人的请求就会失败,因为版本号不再匹配。