Как узнать, что назначение роли Azure уже существует

#azure #powershell

#лазурный #powershell #azure

Вопрос:

Я пытаюсь получить текущий статус назначения роли.

например: я назначил роль участника своему веб-приложению

 New-AzureRmRoleAssignment -ObjectId 43fddad0-xxxx-xxxx-xxxx-665033f5fbf0 -RoleDefinitionName "Storage Blob Data Contributor" -Scope "/subscriptions/4364666b-xxxx-xxxx-xxxx-47158904c439/resourceGroups/devt002RG/providers/Microsoft.Storage/storageAccounts/devt002"
  

Когда я снова выполню вышеуказанную команду в VSTS, появится сообщение об ошибке

 2019-04-02T10:22:58.2614183Z ##[error]The role assignment already exists.
  

Я просто хочу получить текущий статус назначения роли (хранилища Blob Data Contributor) для моего веб-приложения, если оно уже существует, я пропущу назначение.

Я пытался :

 Get-AzureRmRoleAssignment -Scope "/subscriptions/4364666b-xxxx-xxxx-xxxx-47158904c439/resourceGroups/devt002RG/providers/Microsoft.Storage/storageAccounts/devt002"
Get-AzureRmRoleAssignment -Id 43fddad0-xxxx-xxxx-xxxx-665033f5fbf0
  

Ответ №1:

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

Если вы заранее знаете идентификатор GUID:

 Get-AzRoleAssignment -ObjectId "GUID"
  

Это самый простой способ проверить

Комментарии:

1. да, я использую новую нотацию, потому что старая устарела

2. Его вывод: Microsoft. Azure. Команды. Ресурсы. Модели. Авторизация. PSRoleAssignment Как я могу узнать, что ему назначена роль «Вкладчик данных большого двоичного объекта», если мое веб-приложение имеет более одной роли.

3. ок, понял. $check = Get-AzureRmRoleAssignment -ObjectId «43fddad0-xxxx-xxxx-xxxx-665033f5fbf0» write-host «Присвоить имя роли:» $check. RoleDefinitionName