#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