Удаление всех тегов на ресурсе или в группе Azure через REST - PullRequest
0 голосов
/ 18 февраля 2019

Согласно Документам, я могу обновить теги для группы ресурсов или ресурса , сделав запрос PATCH и установив поле tags в теле.Это работает для установки одного или нескольких тегов или удаления одного или нескольких тегов (я просто оставляю тег из запроса).

Однако, когда я пытаюсь удалить все теги с помощьюпропуск пустого поля tags:

PATCH https://management.azure.com/{....}

{
  "tags": {}
}

не работает.Для ресурса я получаю ошибку 400 Request must specify an account property to update, в то время как для группы ресурсов он просто оставляет текущие теги без изменений.

Есть ли способ удалить все теги в группе ресурсов / ресурсов через REST?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Это на самом деле из-за бородавки в том, как пакет httr обрабатывает пустые поля в теле запроса.Если тело является списком, такие поля автоматически удаляются перед отправкой на хост.

Исправление заключается в том, чтобы заранее преобразовать данные в JSON, а не полагаться на httr:

httr::PATCH("https://management.azure.com/{....}",
    body=jsonlite::toJSON(body, auto_unbox=TRUE),
    encoding="raw",
    ...)
0 голосов
/ 18 февраля 2019

Вы можете попробовать использовать этот API: Ресурсы - Обновление по идентификатору , оно должно применяться как к ресурсу, так и к группе ресурсов.Я протестировал его с группой ресурсов и ресурсом (мой пример - веб-приложение), все работает нормально.

Тело запроса:

{
  tags: {}
}

Примечание : Если вы получаете ошибку NoRegisteredProviderFound, изменение api-версии зависит от сообщения об ошибке.

...