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