Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Пакет SDK для Python обновлен с трека 1 до 2. Мы рекомендуем как можно скорее перейти на SDK track 2. Инструкции см. в этом руководстве по миграции.
Пакет SDK для Python поддерживает профили версий API для целевых облачных платформ, таких как Azure Stack Hub и глобальная среда Azure. Используйте профили API для создания решений для гибридного облака.
Инструкции в этой статье требуют подписки Microsoft Azure. Если у вас его нет, вы можете получить бесплатную пробную учетную запись.
Профили версий Python и API
Пакет SDK для Python поддерживает следующие профили API:
самый поздний
Этот профиль предназначен для последних версий API для всех поставщиков служб на платформе Azure.2020_09_01_hybrid
Этот профиль предназначен для новых версий API всех поставщиков ресурсов платформы Azure Stack Hub версии 2102 и выше.2019_03_01_hybrid
Этот профиль нацелен на последние версии API для всех поставщиков ресурсов платформы Azure Stack Hub для версии 1904 и более поздних.Дополнительные сведения о профилях API и Azure Stack Hub см. в статье "Управление профилями версий API" в Azure Stack Hub.
Установка Python SDK для Azure
Профили
Для профилей, содержащих даты, чтобы использовать другой профиль или версию пакета SDK, замените дату в v<date>_hybrid. Например, для версии 2008 профиль имеет 2019_03_01значение, а строка становится v2019_03_01_hybrid. Обратите внимание, что иногда команда SDK изменяет имя пакетов, поэтому просто замена даты строки другой датой может не работать. См. следующую таблицу для сопоставления профилей и версий Azure Stack.
| Версия Azure Stack | Профиль |
|---|---|
| 2311 | 2020_09_01 |
| 2301 | 2020_09_01 |
| 2206 | 2020_09_01 |
| 2108 | 2020_09_01 |
| 2102 | 2020_09_01 |
| 2008 | 01.03.2019 |
Дополнительные сведения о профилях Azure Stack Hub и API см. в сводке профилей API.
См. профили пакета SDK для Python.
Подписка
Если у вас еще нет подписки, создайте подписку и сохраните идентификатор подписки, который будет использоваться позже. Сведения о создании подписки см. в этом документе.
Принципал службы
Учётная запись службы и связанные с ней сведения о среде должны быть созданы и сохранены в определённом месте. Рекомендуется использовать субъект-службу с ролью owner, но в зависимости от примера может быть достаточно роли contributor. Смотрите README в образцовом репозитории для определения необходимых значений. Эти значения можно прочитать в любом формате, поддерживаемом языком SDK, например из JSON-файла (которые используются в наших примерах). В зависимости от выполняемого примера могут использоваться не все эти значения. См. пример репозитория для обновленного примера кода или дополнительных сведений.
Идентификатор арендатора
Чтобы найти каталог или идентификатор клиента для Azure Stack Hub, следуйте инструкциям в этой статье.
Регистрация поставщиков ресурсов
Зарегистрируйте необходимых поставщиков ресурсов, следуя этому документу. Эти поставщики ресурсов потребуются в зависимости от примеров, которые требуется запустить. Например, если вы хотите запустить виртуальную машину, требуется регистрация поставщика ресурсов Microsoft.Compute.
Конечная точка диспетчера ресурсов Azure Stack
Azure Resource Manager (ARM) — это платформа управления, которая позволяет администраторам развертывать, управлять и отслеживать ресурсы Azure. Azure Resource Manager может обрабатывать эти задачи как группу, а не отдельно в одной операции. Сведения о метаданных можно получить из узла Resource Manager. Конечная точка возвращает JSON-файл с информацией, необходимой для выполнения кода.
-
ResourceManagerEndpointUrl в пакете средств разработки Azure Stack (ASDK):
https://management.local.azurestack.external/ -
ResourceManagerEndpointUrl в интегрированных системах:
https://management.region.<fqdn>/, где<fqdn>— это ваше полностью квалифицированное доменное имя. - Чтобы получить необходимые метаданные:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Доступные версии API см. в спецификациях REST API Azure. Например, в версии профиля2020-09-01можно изменитьapi-versionна2019-10-01для поставщика ресурсовmicrosoft.resources.
Пример 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"]
}
}
Доверяйте корневому сертификату ЦС Azure Stack Hub
Если вы используете ASDK, необходимо явно доверять корневому сертификату ЦС на удаленном компьютере. Для интегрированных систем Azure Stack Hub не нужно доверять корневому сертификату ЦС.
Виндоус
Найдите расположение хранилища сертификатов Python на компьютере. Расположение может отличаться в зависимости от того, где установлен Python. Откройте командную строку или строку PowerShell с повышенными привилегиями и введите следующую команду:
python -c "import certifi; print(certifi.where())"Запишите расположение хранилища сертификатов; например , ~/lib/python3.5/site-packages/certifi/cacert.pem. Конкретный путь зависит от операционной системы и установленной версии Python.
Доверяйте корневому сертификату ЦС Azure Stack Hub, добавив его к существующему сертификату 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"
Замечание
Если вы используете virtualenv для разработки с помощью пакета SDK для Python, необходимо добавить предыдущий сертификат в хранилище сертификатов виртуальной среды. Путь может выглядеть примерно так: ..\mytestenv\Lib\site-packages\certifi\cacert.pem
Образцы
См. этот образец репозитория для актуального образца кода (трек 2). См. этот пример репозитория для образца кода трека 1. Корневой каталог README.md описывает общие требования, а каждый вложенный каталог содержит конкретный пример с собственными README.md сведениями о том, как запустить этот пример.
Ознакомьтесь здесь с примером, применимым к версии Azure Stack 2008 или профилю 2019-03-01, и ниже.