根据文档,我可以通过发出PATCH请求并在正文中设置tags
字段来更新resource group或resource上的标签。这适用于设置一个或多个标签,或删除一个或多个标签(我只是将标签名保留在请求之外)。
但是,当我尝试通过传递空的tags
字段来删除 all 个标记时,
PATCH https://management.azure.com/{....}
{
"tags": {}
}
它不起作用。对于资源,我收到400错误Request must specify an account property to update
,而对于资源组,它只会使当前标签保持不变。
是否可以通过REST删除资源/资源组上的所有标签?
答案 0 :(得分:1)
您可以尝试使用以下api:Resources - Update By Id,它应该同时适用于资源和资源组。我已经使用资源组和资源(我的示例是一个Web应用程序)对其进行了测试,一切正常。
请求正文:
{
tags: {}
}
注意:如果收到NoRegisteredProviderFound
错误,请根据错误消息更改api版本。
答案 1 :(得分:0)
这实际上是due to a wart的httr程序包如何处理请求正文中的空字段。如果正文是列表,则将这些字段静默删除,然后再发送给主机。
解决方法是事先将数据转换为JSON,而不是依靠httr来完成:
httr::PATCH("https://management.azure.com/{....}",
body=jsonlite::toJSON(body, auto_unbox=TRUE),
encoding="raw",
...)