Compartir a través de


Uso de perfiles de la versión de la API con Python en Azure Stack Hub

Importante

El SDK de Python se ha actualizado de la pista 1 a la 2. Se recomienda migrar al SDK de seguimiento 2 lo antes posible. Para obtener instrucciones, consulte esta guía de migración.

El SDK de Python admite los perfiles de la versión de la API para su uso con diferentes plataformas en la nube, como Azure Stack Hub y Azure global. Utilice los perfiles de la API para crear soluciones para una nube híbrida.

Las instrucciones de este artículo requieren una suscripción de Microsoft Azure. Si no tiene una, puede obtener una cuenta de evaluación gratuita.

Python y Perfiles de la versión de la API

El SDK de Python es compatible con los siguientes perfiles de la API:

  • más reciente
    Este perfil tiene como destino las versiones de API más recientes de todos los proveedores de servicios de la plataforma Azure.

  • 2020_09_01_hybrid
    Este perfil tiene como destino las versiones de API más recientes de todos los proveedores de recursos de la plataforma de Azure Stack Hub para la versión 2102 u otras posteriores.

  • 2019_03_01_hybrid
    Este perfil tiene como destino las versiones de API más recientes de todos los proveedores de recursos de la plataforma de Azure Stack Hub para la versión 1904 u otras posteriores.

    Para más información sobre los perfiles de la API y Azure Stack Hub, consulte Administración de perfiles de versión de API en Azure Stack Hub.

Instalación del SDK de Azure para Python

  1. Instale Git.
  2. Instalación del SDK de Python.

Profiles

En el caso de los perfiles que contienen fechas, para usar otro perfil o versión del SDK, sustituya la fecha en v<date>_hybrid. Por ejemplo, para la versión 2008, el perfil es 2019_03_01 y la cadena se convierte en v2019_03_01_hybrid. Tenga en cuenta que a veces el equipo del SDK cambia el nombre de los paquetes, por lo que podría no funcionar simplemente reemplazar la fecha de una cadena por otra fecha. Consulte la tabla siguiente para ver la asociación de perfiles y versiones de Azure Stack.

Versión de Azure Stack Perfil
2311 2020_09_01
2301 2020_09_01
2206 2020_09_01
2108 2020_09_01
2102 2020_09_01
2008 2019_03_01

Para más información sobre los perfiles de API y Azure Stack Hub, consulte Resumen de perfiles de API.

Consulte los perfiles del SDK de Python.

Subscription

Si aún no tiene una suscripción, cree una y guarde el ID. de suscripción para usarlo más adelante. Para más información sobre cómo crear una suscripción, vea este documento.

Entidad de servicio

Una entidad de servicio y su información de entorno asociada deben crearse y guardarse en algún lugar. Se recomienda la entidad de servicio con rol owner, pero en función del ejemplo, un rol contributor puede ser suficiente. Consulte el archivo LÉAME en el repositorio de ejemplo para conocer los valores necesarios. Puede leer estos valores en cualquier formato admitido por el lenguaje SDK, como desde un archivo JSON (que usan nuestros ejemplos). Dependiendo de la ejecución del ejemplo, no se pueden usar todos estos valores. Consulte el repositorio de ejemplo para obtener código de ejemplo actualizado o más información.

Id. de inquilino

Para buscar el directorio o el ID. de inquilino de Azure Stack Hub, siga las instrucciones de este artículo.

Registro de proveedores de recursos

Registre los proveedores de recursos necesarios siguiendo este documento. Estos proveedores de recursos serán necesarios en función de los ejemplos que quiera ejecutar. Por ejemplo, si quiere ejecutar un ejemplo de máquina virtual, se requiere el registro del proveedor de recursos Microsoft.Compute.

Punto de conexión del administrador de recursos de Azure Stack

Azure Resource Manager (ARM) es un marco de administración que permite a los administradores implementar, administrar y supervisar recursos de Azure. Azure Resource Manager puede controlar estas tareas como grupo, en vez de individualmente, en una sola operación. Puede obtener la información de metadatos en el punto de conexión de Resource Manager. El punto de conexión devuelve un archivo JSON con la información necesaria para ejecutar el código.

  • El valor de ResourceManagerEndpointUrl del Kit de desarrollo de Azure Stack (ASDK) es: https://management.local.azurestack.external/.
  • ResourceManagerEndpointUrl en un sistema integrado es: https://management.region.<fqdn>/, donde <fqdn> es el nombre de dominio completo.
  • Para recuperar los metadatos necesarios: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Para las versiones de API disponibles, consulte Especificaciones de la API de REST de Azure. Por ejemplo, en la versión 2020-09-01 del perfil, puede cambiar api-version por 2019-10-01 para el proveedor de recursos microsoft.resources.

Ejemplo de JSON:

{
   "galleryEndpoint": "https://portal.local.azurestack.external:30015/",
   "graphEndpoint": "https://graph.windows.net/",
   "portal Endpoint": "https://portal.local.azurestack.external/",
   "authentication": 
      {
         "loginEndpoint": "https://login.windows.net/",
         "audiences": ["https://management.yourtenant.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
      }
}

Confianza en el certificado raíz de la entidad de certificación de Azure Stack Hub

Si usa el ASDK, debe confiar explícitamente en el certificado raíz de la entidad de certificación en la máquina remota. No es necesario que confíe en el certificado raíz de la entidad de certificación con los sistemas integrados de Azure Stack Hub.

Windows

  1. Busque la ubicación del almacén de certificados de Python en la máquina. La ubicación puede variar dependiendo de dónde haya instalado Python. Abra un símbolo del sistema o un símbolo del sistema de PowerShell con privilegios elevados y escriba el siguiente comando:

      python -c "import certifi; print(certifi.where())"
    

    Anote la ubicación del almacén de certificados; por ejemplo, ~/lib/python3.5/site-packages/certifi/cacert.pem. La ruta de acceso específica depende del sistema operativo y la versión de Python que haya instalado.

  2. Para confiar en el certificado raíz de CA de Azure Stack Hub, anéxelo al certificado existente de Python:

    $pemFile = "<Fully qualified path to the PEM certificate; for ex: C:\Users\user1\Downloads\root.pem>"
    
    $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
    $root.Import($pemFile)
    
    Write-Host "Extracting required information from the cert file"
    $md5Hash    = (Get-FileHash -Path $pemFile -Algorithm MD5).Hash.ToLower()
    $sha1Hash   = (Get-FileHash -Path $pemFile -Algorithm SHA1).Hash.ToLower()
    $sha256Hash = (Get-FileHash -Path $pemFile -Algorithm SHA256).Hash.ToLower()
    
    $issuerEntry  = [string]::Format("# Issuer: {0}", $root.Issuer)
    $subjectEntry = [string]::Format("# Subject: {0}", $root.Subject)
    $labelEntry   = [string]::Format("# Label: {0}", $root.Subject.Split('=')[-1])
    $serialEntry  = [string]::Format("# Serial: {0}", $root.GetSerialNumberString().ToLower())
    $md5Entry     = [string]::Format("# MD5 Fingerprint: {0}", $md5Hash)
    $sha1Entry    = [string]::Format("# SHA1 Fingerprint: {0}", $sha1Hash)
    $sha256Entry  = [string]::Format("# SHA256 Fingerprint: {0}", $sha256Hash)
    $certText = (Get-Content -Path $pemFile -Raw).ToString().Replace("`r`n","`n")
    
    $rootCertEntry = "`n" + $issuerEntry + "`n" + $subjectEntry + "`n" + $labelEntry + "`n" + `
    $serialEntry + "`n" + $md5Entry + "`n" + $sha1Entry + "`n" + $sha256Entry + "`n" + $certText
    
    Write-Host "Adding the certificate content to Python Cert store"
    Add-Content "${env:ProgramFiles(x86)}\Python35\Lib\site-packages\certifi\cacert.pem" $rootCertEntry
    
    Write-Host "Python Cert store was updated to allow the Azure Stack Hub CA root certificate"
    

Nota:

Si usa virtualenv para desarrollar con el SDK de Python, debe agregar el certificado anterior al almacén de certificados del entorno virtual. La ruta de acceso podría ser similar a la siguiente: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Ejemplos

Consulte este repositorio de ejemplo para obtener código de ejemplo de actualización a fecha (seguimiento 2). Consulte este repositorio de ejemplo para realizar el seguimiento de 1 código de ejemplo. La raíz README.md describe los requisitos generales y cada subdirectorio contiene un ejemplo específico con su propio README.md que describe cómo ejecutar ese ejemplo.

Consulte aquí el ejemplo aplicable a la versión 2008 o el perfil 2019-03-01 de Azure Stack y posteriores.

Pasos siguientes