Set-AzureRmResource выдает ошибку api-версии - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь программно добавить теги к ресурсам в правительстве Azure.Когда я пытаюсь установить теги для ресурса, у которого нет тегов, я использую команду Set-AzureRmResource.Я попытался установить ApiVersion и без него (предполагается, что используется последняя версия). Когда я использую флаг Debug, он показывает устанавливаемую версию, но я все еще получаю ошибку ниже.

Set-AzureRmResource : Cannot validate argument on parameter 'ResourceId'. The argument is null or empty. Provide an
argument that is not null or empty, and then try the command again.
At line:1 char:108
+ ... ONMENT=""; ORGANIZATION="" } -ResourceId $resource.ResourceId  -Force ...
+                                              ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Set-AzureRmResource], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implem
   entation.SetAzureResourceCmdlet

Фрагмент Iпытаюсь запустить ниже.

Set-AzureRmResource -Tag @{ ENVIRONMENT=""; ORGANIZATION="" } -ResourceId $resource.ResourceId  -Force

Редактировать: указать правительство Azure Редактировать 2: Удален явный параметр версии из кода

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Я протестировал ваш приведенный выше фрагмент на ресурсах Azure для государственных организаций и на его правильной работе с использованием модуля AzureRM версии 6.13.1.

Вы можете запустить свою версию, запустив этот фрагмент

Get-Module AzureRM -List
0 голосов
/ 01 февраля 2019

Для тех, кто видит это в будущем.Проблема заключается в известной ошибке в том, как Azure кодирует символ «#» в ResourceId.Поэтому не используйте '#' в строке ресурса.

Изменения кода, которые мы делаем, заключаются в следующем:

 $resource.ResourceId = $resource.ResourceId.Replace("#", "%23")

Простое исправление, если у вас есть символ #, или изменениеваше управление, чтобы не называть вещи с "#".

Спасибо за все остальные ответы.Нам пришлось открыть билет, чтобы получить эту информацию.

0 голосов
/ 30 января 2019

Я пытался использовать новые команды Az в правительстве Azure:

Set-AzResource -Tag @{ ENVIRONMENT=""; ORGANIZATION="" } -ResourceId $resource.ResourceId  -Force

.., и у меня это работало нормально.(Я получил ошибку сериализации, используя более старые команды AzureRm).К вашему сведению ... не уверен, когда вы попробовали это вчера, но была проблема с DNS, которая вызвала некоторые перебои в обслуживании, что могло привести к ошибочным ошибкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...