Use perfis de versão API com Python no Azure Stack Hub

O Python SDK suporta perfis de versão API para direcionar diferentes plataformas em nuvem, como o Azure Stack Hub e o Global Azure. Utilize perfis API na criação de soluções para uma nuvem híbrida.

As instruções deste artigo requerem uma subscrição do Microsoft Azure. Se não tiver uma, pode ter uma conta de teste gratuita.

Perfis de versão Python e API

O Python SDK suporta os seguintes perfis API:

  • mais recente
    Este perfil destina-se às versões API mais recentes para todos os prestadores de serviços na plataforma Azure.

  • 2020_09_01_hybrid
    Este perfil destina-se às versões API mais recentes para todos os fornecedores de recursos na plataforma Azure Stack Hub para as versões 2102 ou posteriores.

  • 2019_03_01_hybrid
    Este perfil destina-se às versões API mais recentes para todos os fornecedores de recursos na plataforma Azure Stack Hub para versões de 1904 ou posterior.

    Para obter mais informações sobre perfis API e Azure Stack Hub, consulte os perfis de versão API do Manage no Azure Stack Hub.

Instale o Azure Python SDK

  1. Instale Git.
  2. Instale o Python SDK.

Perfis

Para perfis que contenham datas, para utilizar um perfil ou versão SDK diferente, substitua a data em v<date>_hybrid. Por exemplo, para a versão de 2008, o perfil é 2019_03_01, e a corda torna-se v2019_03_01_hybrid. Note que, por vezes, a equipa SDK muda o nome dos pacotes, pelo que simplesmente substituir a data de uma cadeia por uma data diferente pode não funcionar. Consulte a tabela seguinte para associação de perfis e versões Azure Stack.

Versão Azure Stack Perfil
2108 2020_09_01
2102 2020_09_01
2008 2019_03_01

Para obter mais informações sobre os perfis Azure Stack Hub e API, consulte o Resumo dos perfis da API.

Consulte os perfis da Python SDK.

Subscrição

Se ainda não tiver uma subscrição, crie uma subscrição e guarde o ID de subscrição para ser usado mais tarde. Para obter informações sobre como criar uma subscrição, consulte este documento.

Service principal (Principal de serviço)

Um diretor de serviço e a informação ambiental associada devem ser criadas e guardadas em algum lugar. Recomenda-se o principal do serviço com owner função, mas dependendo da amostra, uma contributor função pode ser suficiente. Consulte a README no repositório de amostras para obter os valores necessários. Pode ler estes valores em qualquer formato suportado pelo idioma SDK, como por exemplo, a partir de um ficheiro JSON (que as nossas amostras utilizam). Dependendo da amostra em execução, nem todos estes valores podem ser utilizados. Consulte o repositório de amostras para obter informações atualizadas sobre o código de amostra ou mais informações.

ID do inquilino

Para encontrar o diretório ou iD do inquilino para o seu Azure Stack Hub, siga as instruções deste artigo.

Registar fornecedores de recursos

Registe-se os fornecedores de recursos necessários seguindo este documento. Estes fornecedores de recursos serão necessários dependendo das amostras que pretende executar. Por exemplo, se pretender executar uma amostra de VM, é necessário o registo do Microsoft.Compute fornecedor de recursos.

Ponto final do gestor de recursos Azure Stack

O Azure Resource Manager (ARM) é um quadro de gestão que permite aos administradores implantar, gerir e monitorizar os recursos da Azure. A Azure Resource Manager pode lidar com estas tarefas como um grupo, em vez de individualmente, numa única operação. Pode obter a informação de metadados do ponto final Resource Manager. O ponto final devolve um ficheiro JSON com a informação necessária para executar o seu código.

  • O ResourceManagerEndpointUrl no Kit de Desenvolvimento da Pilha de Azure (ASDK) é: https://management.local.azurestack.external/.
  • O ResourceManagerEndpointUrl em sistemas integrados é: https://management.region.<fqdn>/, onde <fqdn> está o seu nome de domínio totalmente qualificado.
  • Para recuperar os metadados necessários: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Para versões API disponíveis, consulte as especificações API de repouso Azure. Por exemplo, na 2020-09-01 versão de perfil, pode alterar o api-version para 2019-10-01 fornecedor microsoft.resourcesde recursos .

Amostra 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"]
      }
}

Confie no certificado raiz Azure Stack Hub CA

Se estiver a utilizar o ASDK, deve confiar explicitamente no certificado raiz ca na sua máquina remota. Não precisa confiar o certificado de raiz da AC com sistemas integrados Azure Stack Hub.

Windows

  1. Encontre a localização da loja de certificados Python na sua máquina. A localização pode variar, dependendo do local onde instalou Python. Abra uma solicitação de comando ou uma solicitação powerShell elevada e digite o seguinte comando:

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

    Tome nota da localização da loja de certificados; por exemplo, ~/lib/python3.5/site-packages/certifi/cacert.pem. O seu percurso em particular depende do seu sistema operativo e da versão do Python que instalou.

  2. Confie no certificado raiz Azure Stack Hub CA, anexando-o ao certificado Python existente:

    $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

Se estiver a utilizar virtualenv para desenvolver com Python SDK, deve adicionar o certificado anterior à sua loja de certificados de ambiente virtual. O caminho pode parecer-se com: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Amostras

Consulte o repositório de amostras para obter o código de amostra atualizado. A raiz README.md descreve os requisitos gerais, e cada sub-directório contém uma amostra específica com a sua própria README.md sobre como executar essa amostra.

Consulte aqui a amostra aplicável para a versão 2008 ou perfil 2019-03-01 do Azure Stack e abaixo.

Passos seguintes