Создайте роль Azure с помощью Azure Cli, хотя скрипты Powershell возвращают ошибку - PullRequest
0 голосов
/ 10 июля 2019

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

$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

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

1 Ответ

0 голосов
/ 10 июля 2019

Для вашей цели вам просто нужно использовать 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"

Скриншот результата будет выглядеть так:

enter image description here

...