Saltar al contenido

Azure Python SDK: el objeto ‘ServicePrincipalCredentials’ no tiene attribute ‘get_token’

Queremos enseñarte la mejor solución que descubrimos online. Nosotros esperamos que te sea de ayuda y si quieres compartir cualquier detalle que nos pueda ayudar a crecer siente la libertad de hacerlo..

Solución:

Las bibliotecas de Azure para Python se están actualizando actualmente para compartir patrones comunes en la nube, como protocolos de autenticación, registro, seguimiento, protocolos de transporte, respuestas almacenadas en búfer y reintentos.

Esto también cambiaría un poco el mecanismo de autenticación. En la versión anterior, ServicePrincipalCredentials en azure.common se usó para autenticarse en Azure y crear un cliente de servicio.

En la versión más nueva, el mecanismo de autenticación ha sido rediseñado y reemplazado por azure-identity biblioteca para proporcionar una autenticación unificada basada en Azure Identity para todos los SDK de Azure. Correr pip install azure-identity para obtener el paquete.

En términos de código, lo que entonces era:

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.compute import ComputeManagementClient

credentials = ServicePrincipalCredentials(
    client_id='xxxxx',
    secret='xxxxx',
    tenant='xxxxx'
)

compute_client = ComputeManagementClient(
    credentials=credentials,
    subscription_id=SUBSCRIPTION_ID
)

es ahora:

from azure.identity import ClientSecretCredential
from azure.mgmt.compute import ComputeManagementClient

credential = ClientSecretCredential(
    tenant_id='xxxxx',
    client_id='xxxxx',
    client_secret='xxxxx'
)

compute_client = ComputeManagementClient(
    credential=credential,
    subscription_id=SUBSCRIPTION_ID
)

A continuación, puede utilizar el list_all método con compute_client para enumerar todas las máquinas virtuales como de costumbre:

# List all Virtual Machines in the specified subscription
def list_virtual_machines():
    for vm in compute_client.virtual_machines.list_all():
        print(vm.name)

list_virtual_machines()

Referencias:

  • Azure SDK para Python en GitHub
  • Guía de migración – Gestión de recursos
  • Cómo autenticar y autorizar aplicaciones de Python en Azure
  • Ejemplo: usar las bibliotecas de Azure para aprovisionar una máquina virtual

Si sostienes algún recelo o disposición de avanzar nuestro escrito eres capaz de añadir una explicación y con gusto lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *