Azure Automation에서 Python 2 패키지 관리

이 문서에서는 Azure 샌드박스 환경 및 Hybrid Runbook Worker에서 실행되는 Azure Automation에서 Python 2 패키지를 가져오고 관리하고 사용하는 방법을 설명합니다. Runbook을 단순화하기 위해 Python 패키지를 사용하여 필요한 모듈을 가져올 수 있습니다.

Python 3 패키지 관리에 대한 자세한 내용은 Python 3 패키지 관리를 참조하세요.

패키지 가져오기

  1. Automation 계정의 공유 리소스 아래에서 Python 패키지를 선택합니다. + Python 패키지 추가를 선택합니다.

    왼쪽 메뉴에 Python 패키지가 표시되고 강조 표시된 Python 패키지 추가가 표시된 Python 패키지 페이지 스크린샷.

  2. Python 패키지 추가 페이지에서 업로드할 로컬 패키지를 선택합니다. 패키지는 .whl 또는 .tar.gz 파일일 수 있습니다.

  3. 이름을 입력하고 런타임 버전을 2.x.x로 선택합니다.

  4. 가져오기를 선택합니다.

    스크린샷은 업로드된 tar.gz 파일이 선택된 Python 패키지 추가 페이지를 보여 줍니다.

패키지를 가져온 후에는 Automation 계정의 Python 패키지 페이지에 나열됩니다. 패키지를 제거하려면 패키지를 선택하고 삭제를 선택합니다.

스크린샷은 패키지를 가져온 후의 Python 2.7.x 패키지 페이지를 보여 줍니다.

종속성이 있는 패키지 가져오기

Azure Automation은 가져오기 프로세스 중에 Python 패키지에 대한 종속성을 확인하지 않습니다. 모든 종속성이 있는 패키지를 가져오는 방법은 두 가지입니다. 다음 단계 중 하나만 사용하여 패키지를 Automation 계정으로 가져올 수 있습니다.

수동 다운로드

Python2.7pip가 설치된 Windows 64비트 컴퓨터에서 다음 명령을 실행하여 패키지와 모든 종속성을 다운로드합니다.

C:\Python27\Scripts\pip2.7.exe download -d <output dir> <package name>

패키지 다운로드가 완료되면 이를 Automation 계정으로 가져올 수 있습니다.

Runbook

Runbook을 획득하려면, Azure Automation GitHub 조직에서 사용자의 Automation 계정으로 Python 2 패키지를 pypi에서 Azure Automation 계정으로 Python 2 패키지를 가져옵니다. 실행 설정이 Azure로 설정되어 있고 매개 변수가 포함된 Runbook을 시작해야 합니다. Automation 계정에 대해 관리 ID가 활성화되어 있고 성공적인 패키지 가져오기를 위한 Automation 기여자 액세스 권한이 있는지 확인합니다. 각 매개 변수에 대해 다음 목록과 이미지에 표시된 것처럼 스위치를 사용하여 시작해야 합니다.

  • -s <subscriptionId>
  • -g <resourceGroup>
  • -a <automationAccount>
  • -m <modulePackage>

스크린샷은 오른쪽에 있는 Runbook 시작 창을 사용하여 import_py2package_from_pypi에 대한 개요 페이지를 보여 줍니다.

Runbook을 사용하여 다운로드할 패키지를 지정할 수 있습니다. 예를 들어 Azure 매개 변수를 사용하면 모든 Azure 모듈과 모든 종속성(약 105개)이 다운로드됩니다. Runbook이 완료된 후 Automation 계정의 공유 리소스에서 Python 패키지를 검사하여 패키지를 올바르게 가져왔는지 확인해야 합니다.

Runbook에서 패키지 사용

패키지를 가져오면 Runbook에서 이를 사용할 수 있습니다. Azure 구독의 모든 리소스 그룹을 나열하는 다음 코드를 추가합니다.

#!/usr/bin/env python 
import os 
import requests 
# printing environment variables 
endPoint = os.getenv('IDENTITY_ENDPOINT') + "?resource=https://management.azure.com/" 
identityHeader = os.getenv('IDENTITY_HEADER') 
payload = {} 
headers = { 
    'X-IDENTITY-HEADER': identityHeader, 
    'Metadata': 'True' 
} 
response = requests.request("GET", endPoint, headers=headers, data=payload) 
print response.text 

오프라인에서 Runbook 개발 및 테스트

오프라인에서 Python 2 Runbook을 개발하고 테스트하려는 경우 GitHub의 Azure Automation python 에뮬레이트된 자산 모듈을 사용할 수 있습니다. 이 모듈에서는 자격 증명, 변수, 연결, 인증서 등의 공유 리소스를 참조할 수 있습니다.

다음 단계

Python Runbook을 준비하려면 Python Runbook 만들기를 참조하세요.