다음을 통해 공유


Azure Stack Hub에서 Python과 함께 API 버전 프로필 사용

중요

Python SDK가 트랙 1에서 트랙 2로 업데이트되었습니다. 가능한 한 빨리 트랙 2 SDK로 마이그레이션하는 것이 좋습니다. 지침은 이 마이그레이션 가이드를 참조하세요.

Python SDK는 Azure Stack Hub 및 글로벌 Azure와 같은 다양한 클라우드 플랫폼을 대상으로 하는 API 버전 프로필을 지원합니다. 하이브리드 클라우드에 대한 솔루션을 만드는 데 API 프로필을 사용합니다.

이 문서의 지침에는 Microsoft Azure 구독이 필요합니다. 평가 판 계정이 없는 경우 평가판 계정을 얻을 수 있습니다.

Python 및 API 버전 프로필

Python SDK는 다음 API 프로필을 지원합니다.

  • 최신
    이 프로필은 Azure 플랫폼의 모든 서비스 공급자에 대한 최신 API 버전을 대상으로 합니다.

  • 2020_09_01_hybrid
    이 프로필은 버전 2102 이상에 대한 Azure Stack Hub 플랫폼의 모든 리소스 공급자에 대한 최신 API 버전을 대상으로 합니다.

  • 2019_03_01_hybrid
    이 프로필은 버전 1904 이상에 대한 Azure Stack Hub 플랫폼의 모든 리소스 공급자에 대한 최신 API 버전을 대상으로 합니다.

    API 프로필 및 Azure Stack Hub에 대한 자세한 내용은 Azure Stack Hub에서 API 버전 프로필 관리를 참조하세요.

Azure Python SDK 설치

  1. Git를 설치합니다.
  2. Python SDK를 설치합니다.

Profiles

날짜가 포함된 프로필의 경우 다른 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 2019_03_01

Azure Stack Hub 및 API 프로필에 대한 자세한 내용은 API 프로필 요약을 참조하세요.

Python SDK 프로필을 참조하세요.

구독

아직 구독이 없는 경우 구독을 만들고 나중에 사용할 구독 ID를 저장합니다. 구독을 만드는 방법에 대한 자세한 내용은 이 문서를 참조하세요.

서비스 사용자

서비스 주체 및 관련 환경 정보를 만들고 어딘가에 저장해야 합니다. 역할이 있는 owner 서비스 주체가 권장되지만 샘플에 따라 역할로 contributor 충분할 수 있습니다. 필요한 값은 샘플 리포지토리 의 README를 참조하세요. 이러한 값은 JSON 파일(샘플에서 사용)과 같이 SDK 언어에서 지원하는 형식으로 읽을 수 있습니다. 실행 중인 샘플에 따라 이러한 값을 모두 사용할 수 있는 것은 아닙니다. 업데이트된 샘플 코드 또는 자세한 내용은 샘플 리포지토리 를 참조하세요.

테넌트 ID

Azure Stack Hub의 디렉터리 또는 테넌트 ID를 찾으려면 이 문서의 지침을 따릅니다.

리소스 공급자 등록

문서에 따라 필수 리소스 공급자를 등록합니다. 이러한 리소스 공급자는 실행하려는 샘플에 따라 필요합니다. 예를 들어 VM 샘플을 Microsoft.Compute 실행하려면 리소스 공급자 등록이 필요합니다.

Azure Stack 리소스 관리자 엔드포인트

ARM(Azure Resource Manager)은 관리자가 Azure 리소스를 배포, 관리 및 모니터링할 수 있는 관리 프레임워크입니다. Azure Resource Manager 이러한 작업을 단일 작업에서 개별적으로 처리하지 않고 그룹으로 처리할 수 있습니다. Resource Manager 엔드포인트에서 메타데이터 정보를 가져올 수 있습니다. 엔드포인트는 코드를 실행하는 데 필요한 정보가 포함된 JSON 파일을 반환합니다.

  • ASDK(Azure Stack Development Kit)의 ResourceManagerEndpointUrl 은 입니다 https://management.local.azurestack.external/.
  • 통합 시스템의 ResourceManagerEndpointUrl 은 입니다 https://management.region.<fqdn>/. 여기서 <fqdn> 는 정규화된 도메인 이름입니다.
  • 필요한 <ResourceManagerUrl>/metadata/endpoints?api-version=1.0메타데이터를 검색하려면 입니다. 사용 가능한 API 버전은 Azure rest API 사양을 참조하세요. 예를 들어 프로필 버전에서는 2020-09-01 리소스 공급자 microsoft.resources에 대해 을 api-version2019-10-01 로 변경할 수 있습니다.

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 CA 루트 인증서 신뢰

ASDK를 사용하는 경우 원격 컴퓨터에서 CA 루트 인증서를 명시적으로 신뢰해야 합니다. Azure Stack Hub 통합 시스템을 사용하여 CA 루트 인증서를 신뢰할 필요가 없습니다.

Windows

  1. 컴퓨터에서 Python 인증서 저장소 위치를 찾습니다. 위치는 Python을 설치한 위치에 따라 달라질 수 있습니다. 명령 프롬프트 또는 관리자 권한 PowerShell 프롬프트를 열고 다음 명령을 입력합니다.

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

    인증서 저장소 위치를 기록해 두세요. 예: ~/lib/python3.5/site-packages/certifi/cacert.pem. 특정 경로는 운영 체제 및 설치한 Python 버전에 따라 달라집니다.

  2. Azure Stack Hub CA 루트 인증서를 기존 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"
    

참고

Python SDK를 사용하여 개발하는 데 virtualenv 를 사용하는 경우 가상 환경 인증서 저장소에 이전 인증서를 추가해야 합니다. 경로는 다음과 유사할 ..\mytestenv\Lib\site-packages\certifi\cacert.pem수 있습니다.

샘플

업데이트 날짜(트랙 2) 샘플 코드는 이 샘플 리포지토리 를 참조하세요. 트랙 1 샘플 코드는 이 샘플 리포지토리 를 참조하세요. 루트 README.md 는 일반적인 요구 사항을 설명하고 각 하위 디렉터리에는 해당 샘플을 실행하는 방법을 설명하는 고유한 README.md 특정 샘플이 포함되어 있습니다.

Azure Stack 버전 2008 또는 프로필 2019-03-01 에 적용 가능한 샘플은 여기를 참조하세요.

다음 단계