Azure ARM API - 乐观并发

Azure ARM API - optimistic concurrency

通过ARM REST API,我想读取一个资源(一个NSG)修改它然后写回。如果在我的读取和写入操作之间发生某些事情并修改了资源,我希望最后一步(写回)失败。那可能吗?我在执行 GET 时看到有一个 ETAG 属性,如果资源被修改,也许有一些方法可以利用它使写入失败?

据我所知,Azure Table 存储在 ITableEntity 中有 ETag,用于更新期间的乐观并发。而 Azure REST API Network Security Groups 关于 etag:

A unique read-only string that changes whenever the resource is updated.

我尝试利用Azure Portal and resources.azure.com模拟我的NSG上的并发更新操作,我发现更新操作没有并发控制,配置会被后面的请求覆盖。

据我了解,没有内置功能可让您处理开放式并发。对于 NSG,我假设您不会经常修改它。所以,我认为你可以尝试限制一些人更新你的 NSG 的权限,或者你可以构建你的自定义 REST API 来更新 NSG,并获取最新的 NSG 信息,然后比较 etag 与您之前的 etag 一起确定 NSG 在您更新之前是否被修改。另外,您可以添加您的反馈 here.