2016-10-07 1 views
0

J'utilise Azure pour héberger une série de services et créer des rôles personnalisés pour RBAC. Je cours dans des erreurs en essayant d'exécuter les commandes appropriées pour créer les rôles.Comment définir la version de l'API d'Azure Powershell pour la création de rôle

Il y a un certain nombre d'une bonne documentation sources et walkthroughs sur la façon de le faire, et il semble facile en théorie, mais je continue à courir sur les questions en cours d'exécution du Powershell commandlet:

New-AzureRmRoleDefinition -InputFile [pathtojsondoc] 

Le fichier d'entrée est juste JSON décrivant le rôle

"Name": "Test Role",  
"IsCustom": true, 
"Description": "Role Description", 
"Actions": [ 
    "Microsoft.Resources/subscriptions/resourceGroups/read" 
      ], 
"NotActions": [ ], 
"AssignableScopes": [ ] 

}

Lorsque vous appelez la fonction New-AzureRmRoleDefinition je reçois t il erreur suivant:

New-AzureRmRoleDefinition : InvalidApiVersionParameter: The api-version '2015-07-01' is invalid. The supported versions are '2016-09-01,2016-07-01,2016-06-01,2016-02-01,2015-11-01,2015-01-01,2014-04-01-preview,2014-04-01,2014-01-0

Je cherche une résolution soit fixer l'appel tout comme il réussit, ou une solution de contournement pour créer des rôles personnalisés.

+0

Vos "AssignableScopes" ne doivent pas être vides. J'ai testé la commande avec '" AssignableScopes ": ["/abonnements/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx "]'. Cela fonctionne parfaitement. Quelle est la version de votre Azure PowerShell? Et, utilisez-vous l'environnement Azure global? –

+0

Désolé, l'échantillon était vide, mais l'exécution réelle a la valeur. Je l'ai supprimé pour garder mon abonnement GUID hors du code. Je cours sur l'infrastructure mondiale, l'ouest des États-Unis pour être précis et j'utilise la version du 28 septembre des outils. – blackSphere

+0

Vous ne devriez pas avoir besoin d'indiquer l'apiVersion pour les applets de commande - quelque chose semble hors fonction ... Essayez de faire un Get-Module -Name AzureRM.Resources et voyez quelle version vous avez (devrait être 3.2 je pense) –

Répondre

0

Il s'avère que l'erreur que je recevais était un mauvais message d'erreur provoquant un diagnostic incorrect. Après la mise à jour vers la dernière version d'Azure PowerShell, j'ai reçu la même erreur. J'ai donc creusé un peu plus et trouvé un échantillon de code mis à jour.

je mettais les champs assignables dans le fichier pour être à des groupes de ressources spécifiques en utilisant le format /subscriptions/*******/myresourcegroupname mais le format correct est /subscriptions/*******/resourceGroups/myresourcegroupname avis le chemin /resourceGroups/ supplémentaire.