중요합니다
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 설치
- Git를 설치합니다.
- Python SDK를 설치합니다.
프로필
날짜가 포함된 프로필의 경우 다른 SDK 프로필 또는 버전을 사용하려면 날짜를 로 바꿔야 합니다 v<date>_hybrid. 예를 들어 2008 버전의 경우 프로필은 2019_03_01으로 바뀌고, 문자열은 v2019_03_01_hybrid이(가) 됩니다. SDK 팀이 패키지의 이름을 변경하는 경우도 있으므로 문자열 날짜를 다른 날짜로 바꾸는 것만으로는 작동하지 않을 수 있습니다. 프로필 및 Azure Stack 버전의 연결은 다음 표를 참조하세요.
| Azure Stack 버전 | 프로필 |
|---|---|
| 2311 | 2020년 9월 1일 |
| 2301 | 2020년 9월 1일 |
| 2206 | 2020년 9월 1일 |
| 2108 | 2020년 9월 1일 |
| 2102 | 2020년 9월 1일 |
| 2008 | 2019.03.01 |
Azure Stack Hub 및 API 프로필에 대한 자세한 내용은 API 프로필 요약을 참조하세요.
구독
아직 구독이 없는 경우 구독을 만들고 나중에 사용할 구독 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에 대해api-version을2019-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 루트 인증서를 신뢰할 필요가 없습니다.
윈도우즈
컴퓨터에서 Python 인증서 저장소 위치를 찾습니다. 위치는 Python을 설치한 위치에 따라 달라질 수 있습니다. 명령 프롬프트 또는 관리자 권한 PowerShell 프롬프트를 열고 다음 명령을 입력합니다.
python -c "import certifi; print(certifi.where())"인증서 저장소 위치를 기록해 둡다. 예: ~/lib/python3.5/site-packages/certifi/cacert.pem. 특정 경로는 운영 체제 및 설치한 Python 버전에 따라 달라집니다.
기존 Python 인증서에 추가하여 Azure Stack Hub CA 루트 인증서를 신뢰합니다.
$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 특정 샘플이 포함되어 있습니다.