J'ai écrit une fonction Azure qui fonctionne à Python3 pour allumer simplement une machine virtuelle Azure.
L'application Fonction a un système attribué une identité gérée que j'ai donné un rôle de contributeur VM. Pour que la fonction utilise l'identité gérée, j'utilise la classe de défaillanceAuReCreDential (). P>
L'erreur que je reçois est:
Voici le code qui est associé: p> vous Dons me pardonner, je suis seulement nouveau à Python, mais très intéressé par l'apprentissage. P> p> Exception: AttributeError: l'objet «DefaultAuReCreCreDential» n'a aucun attribut 'Signé_Session' Code>
J'ai fait des tonnes de recherche et je ne peux pas sembler trouver la solution. P>
3 Réponses :
On dirait que c'est corrigé si vous utilisez la version d'aperçu de Azure-MGMT-Compute (17.0.0b1) P>
Un autre gotchya à cause de la version Bump est qu'ils ont changé la fonction de démarrage du début à commencer_start. p>
J'espère que cela aide quelqu'un! p>
Ceci est adressé ici: https://docs.microsoft.com/en-us/azure/developer/python/azure-sdk-authenticate?tabs=cmd
Recherche "Utilisation de défaillanceAuzurecredential avec les bibliothèques de gestion SDK" sur cette page et elle vous mènera à la section qui couvre votre problème plus en détail. p>
en un mot .... p>
Ils ont mis à jour la classe de défaillance de défaillance et il n'a plus d'attribut "Signé_Session" . Les dernières versions des bibliothèques de gestion doivent être mises à jour pour gérer cela. Comme mentionné dans une autre solution, mettez à jour votre bibliothèque Azure-CLI pour vous assurer que vous avez la dernière. Cependant, toutes les bibliothèques de gestion n'ont pas encore été mises à jour. Vous pouvez utiliser ce wrapper créé par un membre de l'équipe d'ingénierie Azure SDK pour le moment. https://gist.github.com/lmazuel/cc683d82ea1D7B40208DE7C9FC8DE59D P>
from cred_wrapper import CredentialWrapper credentials = CredentialWrapper() compute_client = ComputeManagementClient(credentials, subscription_id) # Starting the VM print('\nStarting VM ' + VM_NAME) vm_start = compute_client.virtual_machines.start( RG_NAME, VM_NAME) vm_start.wait()
Merci pour votre commentaire Bubba. J'ai réussi à le réparer en mettant à jour la bibliothèque. L'apprentissage continue! Passez une bonne journee.
La mise à jour de l'emballage est définitivement la solution idéale. Bonne chance dans votre apprentissage et votre développement!
J'ai rencontré ce problème et je ne peux pas mettre à niveau les bibliothèques de gestion Azure en question. Cependant, le wrapper Ne fonctionne pas car il conduit à une autre erreur:
azure-common==1.1.25 azure-core==1.9.0 azure-identity==1.5.0 azure-mgmt-compute==17.0.0 azure-mgmt-core==1.2.2 azure-mgmt-network==16.0.0 azure-mgmt-resource==10.2.0 msrestazure==0.6.4