Создайте роль Azure с помощью Azure Cli, хотя сценарии Powershell возвращают ошибку

Я пытаюсь создать сценарий ps1 для автоматического назначения роли в Azure для моего приложения. Я назначаю каждую информацию переменной, но получаю сообщение об ошибке, когда запускаю az role assignment create через переменные. Ниже мой скрипт:

$objIdApp = ((az ad sp list -o json) | ConvertFrom-Json) | where {$_.appDisplayName -eq "aplicationname"} | Select-Object -Property objectId | Out-String
$aksId = (az aks list -o json | ConvertFrom-Json) | where {$_.name -eq "aksname"} | Select-Object -Property id | Out-String
az role assignment create --assignee ($objIdApp --scope $aksId  --role "Contributor"

Я получаю сообщение об ошибке ниже от az:

az role assignment create: error: the following arguments are required: --role

Однако, если я получаю каждое строковое значение, заменяю переменную строкой и выполняю ее, она работает. Как я могу исправить это, чтобы я мог использовать переменные?


person Pascal    schedule 09.07.2019    source источник


Ответы (1)


Для вашей цели вам просто нужно использовать Azure CLI с выходным параметром -o tsv, тогда вывод также будет строкой. Скрипт будет выглядеть следующим образом:

$appId = az ad sp list --display-name appName --query [0].appId -o tsv
$appId.GetType()
$aksId = az aks show -g charlesContainer -n aksName--query id -o tsv
$aksId.GetType()
az role assignment create --assignee $appId --scope $aksId --role "Contributor"

Скриншот результата будет таким:

введите здесь описание изображения

person Charles Xu    schedule 10.07.2019