Azure Automation Runbook 형식

Azure Automation 프로세스 자동화 기능은 다음 표에 정의된 대로 여러 유형의 Runbook을 지원합니다. 프로세스 자동화 환경에 대한 자세한 내용은 Azure Automation에서 Runbook 실행을 참조하세요.

Type 설명
PowerShell Windows PowerShell 스크립팅을 기반으로 하는 텍스트 Runbook입니다. 현재 지원되는 버전은 PowerShell 5.1(GA), PowerShell 7.1(미리 보기) 및 PowerShell 7.2(미리 보기)입니다.
PowerShell 워크플로 Windows PowerShell 워크플로 스크립팅을 기반으로 하는 텍스트 Runbook입니다.
Python Python 스크립팅을 기반으로 하는 텍스트 Runbook입니다. 현재 지원되는 버전은 Python 2.7(GA), Python 3.8(GA) 및 Python 3.10(미리 보기)입니다.
그래픽 Windows PowerShell을 기반으로 하며 Azure Portal의 그래픽 편집기로 완전하게 생성 및 편집된 그래픽 Runbook입니다.
그래픽 PowerShell 워크플로 Windows PowerShell 워크플로를 기반으로 하며 Azure Portal의 그래픽 편집기로 완전하게 생성 및 편집된 그래픽 Runbook입니다.

특정 Runbook에 사용할 형식을 결정할 때 다음과 같은 사항을 고려합니다.

  • Runbook을 그래픽에서 텍스트 형식으로 또는 그 반대로 변환할 수 없습니다.
  • 형식이 다른 Runbook을 자식 Runbook으로 사용하는 경우 제한 사항이 있습니다. 자세한 내용은 Azure Automation의 자식 Runbook을 참조하세요.

PowerShell Runbook

PowerShell Runbook은 Windows PowerShell을 기반으로 합니다. Azure 포털의 텍스트 편집기를 사용하여 Runbook을 직접 편집합니다. 오프라인 텍스트 편집기도 사용할 수 있고 Azure Automation으로 Runbook 가져오기 가 가능합니다.

PowerShell 버전은 지정된 런타임 버전(버전 7.2(미리 보기), 7.1(미리 보기) 또는 5.1)에 따라 결정됩니다. Azure Automation 서비스는 최신 PowerShell 런타임을 지원합니다.

동일한 Azure 샌드박스 및 Hybrid Runbook Worker는 PowerShell 5.1PowerShell 7.1(미리 보기) Runbook을 나란히 실행할 수 있습니다.

참고

  • 현재 PowerShell 7.2(미리 보기) 런타임 버전은 오스트레일리아 중부2, 한국 남부, 스웨덴 남부, Jio 인도 중부, 브라질 남동부, 인도 중부, 인도 서부, 아랍에미리트 중부 및 Gov 클라우드를 제외한 모든 공용 지역의 클라우드 및 하이브리드 작업에 대해 지원됩니다.
  • Runbook 실행 시 런타임 버전7.1(미리 보기)로 선택하면 7.1(미리 보기) 런타임 버전을 대상으로 하는 PowerShell 모듈이 사용되며, 런타임 버전을 선택하면 5.1로 5.1 런타임 버전을 대상으로 하는 PowerShell 모듈이 사용됩니다. 이는 PowerShell 7.2(미리 보기) 모듈 및 Runbook에 적용됩니다.

모듈에 대해 올바른 런타임 버전을 선택했는지 확인합니다.

예: 런타임 버전7.1(미리 보기)에서 SharePoint 자동화 시나리오용 Runbook을 실행하는 경우 런타임 버전7.1(미리 보기)에서 모듈을 가져옵니다. 런타임 버전5.1에서 SharePoint 자동화 시나리오용 Runbook을 실행하는 경우 런타임 버전5.1에서 모듈을 가져옵니다. 이 경우 모듈에 대한 두 개의 항목이 표시됩니다. 하나는 런타임 버전7.1(미리 보기)이고 다른 하나는 5.1입니다.

Runbook 유형.

참고

현재 PowerShell 5.1, PowerShell 7.1(미리 보기) 및 PowerShell 7.2(미리 보기)가 지원됩니다.

장점

  • PowerShell 워크플로의 다른 복잡성 없이 PowerShell 코드로 모든 복잡한 로직을 구현합니다.
  • 실행 전에 컴파일이 필요 없기 때문에 PowerShell 워크플로 Runbook보다 빨리 시작됩니다.
  • Windows 및 Linux 둘 다 Azure 및 Hybrid Runbook Worker에서 실행합니다.

제한 사항 및 알려진 문제

다음은 PowerShell Runbook의 현재 제한 사항 및 알려진 문제입니다.

제한 사항

  • PowerShell 스크립팅에 대해 잘 알아야 합니다.
  • Runbook에서는 병렬 처리를 사용하여 여러 작업을 병렬로 실행할 수 없습니다.
  • Runbook에서는 오류 발생 시 검사점을 사용하여 Runbook을 다시 시작할 수 없습니다.
  • 새 작업을 만드는 Start-AzAutomationRunbook cmdlet을 사용하여 자식 Runbook으로서의 PowerShell, PowerShell 워크플로 Runbook 및 그래픽 Runbook만 포함할 수 있습니다.
  • Runbook은 PowerShell #Requires 문을 사용할 수 없으며 Azure 샌드박스 또는 Hybrid Runbook Worker에서 지원되지 않으며 작업이 실패할 수 있습니다.
  • Azure Runbook은 을 -credential지원하지 Start-Job 않습니다.
  • Azure는 모든 PowerShell 입력 매개 변수를 지원하지 않습니다. 자세히 알아보기.

알려진 문제

  • 과 같은 C:\modules 내부 파일 경로에 종속되는 Runbook은 서비스 백 엔드 인프라의 변경으로 인해 실패할 수 있습니다. 내부 파일 경로에 대한 종속성이 없도록 Runbook 코드를 변경하고 Get-ChildItem 을 사용하여 필요한 디렉터리를 가져옵니다.
  • ARM 템플릿을 통해 가져온 모듈은 로 Import-module로드되지 않을 수 있습니다. 해결 방법으로 .zip 파일(모듈 이름으로 이름 포함)을 만들고 명명된 폴더(예:ModuleNamedZipFile.zip \ModuleFiles)를 압축하는 대신 모듈 파일을 .zip 파일에 직접 추가합니다. 그런 다음 새 .zip 파일에 모듈을 삭제하거나 다시 추가할 수 있습니다.
  • Get-AzStorageAccountcmdlet이 오류로 인해 실패할 수 있습니다. Get-AzStorageAccount 명령은 모듈 에서 발견되었지만 모Az.Storage듈을 로드할 수 없습니다.
  • .zip 파일을 통해 업로드된 PowerShell 5.1 모듈은 Runbook에서 로드되지 않을 수 있습니다. 해결 방법으로 .zip 파일(모듈 이름으로 이름 포함)을 만들고 명명된 폴더(예:ModuleNamedZipFile.zip \ModuleFiles)를 압축하는 대신 모듈 파일을 .zip 파일에 직접 추가합니다. 그런 다음 새 .zip 파일에 모듈을 삭제하거나 다시 추가할 수 있습니다.
  • 완료된 작업에 경고 메시지가 표시될 수 있습니다. 이 컴퓨터에서 Az 및 AzureRM 모듈이 모두 검색되었습니다. Az 및 AzureRM 모듈은 동일한 세션에서 가져오거나 동일한 스크립트 또는 Runbook에서 사용할 수 없습니다. 이는 경고 메시지일 뿐이며 작업 실행에 영향을 주지 않습니다.
  • PowerShell Runbook이 null 값을 갖는 암호화되지 않은 변수 자산을 가져올 수 없습니다.
  • PowerShell Runbook은 이름에 *~*가 포함된 변수 자산을 검색할 수 없습니다.
  • PowerShell Runbook의 반복적인 Get-Process 작업은 80회 반복 후에 크래시가 발생할 수 있습니다.
  • PowerShell Runbook이 한 번에 대량의 데이터를 출력 스트림에 쓰려고 하면 실패할 수 있습니다. Runbook에서 큰 개체로 작업하는 데 필요한 정보만 출력하면 일반적으로 이 문제를 해결할 수 있습니다. 예를 들어 제한 없이 Get-Process를 사용하는 대신 Get-Process | Select ProcessName, CPU에서와 같이 cmdlet이 필요한 매개 변수만 출력하도록 할 수 있습니다.
  • ExchangeOnlineManagement 모듈 버전: 3.0.0 이상을 사용하는 경우 오류가 발생할 수 있습니다. 이 문제를 resolve PowerShellGetPackageManagement 모듈도 명시적으로 업로드해야 합니다.
  • 새 항목 cmdlet을 사용하는 경우 작업이 일시 중단될 수 있습니다. 문제를 resolve 완화 단계를 수행합니다.
    1. 변수에서 cmdlet의 new-item 출력을 사용하고 명령을 사용하여 write-output 출력 스트림에 쓰지 않습니다.
      • Runbook의 로 깅 및 추적 설정에서 디버그 또는 진행률 스트림을 사용하도록 설정한 후 디버그 또는 진행률 스트림을 사용할 수 있습니다.
      $item = New-Item -Path ".\message.txt" -Force -ErrorAction SilentlyContinue
      write-debug $item # or use write-progress $item
      
      • 또는 스크립트에서 변수가 없는지 검사 수 있습니다.
      $item = New-Item -Path ".\message.txt" -Force -ErrorAction SilentlyContinue
      if($item) { write-output "File Created" }
      
    2. 동일한 Runbook이 예상대로 작동하는 PowerShell 7.1 또는 PowerShell 7.2로 Runbook을 업그레이드할 수도 있습니다.
  • 버전 2.12.3 이상인 모듈 Az.Accounts를 가져오는 경우 PowerShell 5.1 Runbook이 이 버전의 모듈에 종속된 경우 Newtonsoft.Json v10 모듈을 명시적으로 가져와야 합니다. 이 문제의 해결 방법은 PowerShell 7.2 Runbook을 사용하는 것입니다.

PowerShell 워크플로 Runbook

PowerShell 워크플로 Runbook은 Windows PowerShell 워크플로를 기반으로 하는 텍스트 Runbook입니다. Azure 포털의 텍스트 편집기를 사용하여 Runbook을 직접 편집합니다. 오프라인 텍스트 편집기도 사용할 수 있고 Azure Automation으로 Runbook 가져오기 가 가능합니다.

참고

PowerShell 7.1(미리 보기) 및 PowerShell 7.2(미리 보기)는 워크플로 Runbook을 지원하지 않습니다.

장점

  • PowerShell 워크플로 코드로 모든 복잡한 로직을 구현합니다.
  • 오류 발생 시 검사점을 사용하여 작업을 다시 시작합니다.
  • 병렬 처리를 사용하여 여러 작업을 병렬로 수행합니다.
  • 다른 그래픽 Runbook과 PowerShell 워크플로 Runbook을 자식 Runbook으로 포함하여 고급 워크플로를 만들 수 있습니다.

제한 사항

  • PowerShell 워크플로를 잘 알아야 합니다.
  • Runbook은 역직렬화된 개체와 같은 PowerShell 워크플로의 부가적인 복잡성을 다루어야 합니다.
  • Runbook은 실행 전에 컴파일해야 하기 때문에 PowerShell Runbook보다 시작 시간이 깁니다.
  • Start-AzAutomationRunbook cmdlet을 사용하여 PowerShell Runbook을 자식 Runbook으로만 포함할 수 있습니다.
  • Runbook은 Linux Hybrid Runbook Worker에서 실행할 수 없습니다.

Python Runbook

Python Runbook은 Python 2.7(GA), Python 3.8(GA) 및 Python 3.10(미리 보기)에서 컴파일됩니다. Azure Portal의 텍스트 편집기를 사용하여 Runbook의 코드를 직접 편집할 수 있습니다. 또한 오프라인 텍스트 편집기를 사용할 수 있고 Azure Automation으로 Runbook을 가져올 수 있습니다.

현재 Python 3.10(미리 보기) 런타임 버전은 오스트레일리아 중부2, 한국 남부, 스웨덴 남부, Jio 인도 중부, 브라질 남부, 인도 중부, 인도 서부, 아랍에미리트 중부 및 Gov 클라우드를 제외한 모든 공용 지역의 클라우드 및 하이브리드 작업에 대해 지원됩니다.

장점

참고

Python 패키지를 가져오는 데에 몇 분 정도 걸릴 수 있습니다.

  • 강력한 Python 라이브러리를 사용합니다.
  • Azure 또는 Hybrid Runbook Worker에서 실행할 수 있습니다.
  • Python 2.7의 경우 Windows Hybrid Runbook Worker는 python 2.7 이 설치된 상태에서 지원됩니다.
  • Python 3.8 클라우드 작업의 경우 Python 3.8 버전이 지원됩니다. 서로 다른 버전에서 코드가 호환되는 경우에는 3.x 버전의 스크립트 및 패키지가 작동할 수 있습니다.
  • Windows 컴퓨터의 Python 3.8 하이브리드 작업의 경우 사용하려는 3.x 버전을 설치하도록 선택할 수 있습니다.
  • Linux 컴퓨터의 Python 3.8 하이브리드 작업의 경우 DSC OMSConfig 및 Linux Hybrid Worker를 실행하기 위해 컴퓨터에 설치된 Python 3 버전에 의존합니다. Python 3 버전 간에 메서드 서명 또는 계약에 호환성이 손상되는 변경이 없는 경우 다른 버전이 작동해야 합니다.

제한 사항

다음은 Python Runbook의 제한 사항입니다.

  • Python 스크립팅에 대해 잘 알아야 합니다.
  • Python 2.7.12 모듈의 경우 휠 파일 cp27-amd6을 사용합니다.
  • 타사 라이브러리를 사용하려면 Automation 계정으로 패키지를 가져와야 합니다.
  • Azure Automation은 sys.stderr를 지원하지 않습니다.
  • Python automationassets 패키지는 pypi.org에서 사용할 수 없으므로 Windows 머신으로 가져올 수 없습니다.

여러 Python 버전

Windows Hybrid 작업자에 적용할 수 있습니다. Windows Runbook Worker의 경우 Python 2 Runbook을 실행할 때 먼저 환경 변수 PYTHON_2_PATH를 찾고 유효한 실행 파일을 가리키는지 유효성을 검사합니다. 예를 들어, 설치 폴더가 C:\Python2이면 C:\Python2\python.exe가 유효한 경로인지 확인합니다. 해당 환경 변수가 없으면 PATH 환경 변수를 찾아서 비슷한 확인을 수행합니다.

Python 3의 경우 먼저 PYTHON_3_PATH 환경 변수를 찾은 다음, PATH 환경 변수로 대체합니다.

Python 버전을 하나만 사용하는 경우 PATH 변수에 설치 경로를 추가할 수 있습니다. Runbook Worker에서 두 버전을 모두 사용하려면 PYTHON_2_PATHPYTHON_3_PATH를 해당 버전의 모듈 위치로 설정합니다.

알려진 문제

클라우드 작업의 경우 Python 3.8 작업이 예외 메시지 invalid interpreter executable path로 실패하는 경우가 있습니다. 작업이 지연되거나 10분 이상 시작되거나 Start-AutomationRunbook을 사용하여 Python 3.8 Runbook을 시작하는 경우 이 예외가 표시될 수 있습니다. 작업이 지연되는 경우 Runbook을 다시 시작하는 것으로 충분합니다.

그래픽 Runbook

Azure Portal에서 그래픽 편집기를 사용하여 그래픽 및 그래픽 PowerShell 워크플로 Runbook을 만들고 편집할 수 있습니다. 그러나 다른 도구를 사용하여 이 유형의 Runbook을 만들거나 편집할 수 없습니다. 그래픽 Runbook의 주요 기능:

  • Automation 계정의 파일로 내보낸 다음 다른 Automation 계정으로 가져옵니다.
  • PowerShell 코드를 생성합니다.
  • 가져오는 동안 그래픽 PowerShell 워크플로 Runbook으로 변환되거나 그 반대로 변환됩니다.

장점

  • 시각적 삽입-링크-구성 제작 모델을 사용합니다.
  • 프로세스를 통해 데이터가 흐르는 방식에 집중합니다.
  • 관리 과정을 시각적으로 나타냅니다.
  • 다른 Runbook을 자식 Runbook으로 포함하여 고급 워크플로를 만듭니다.
  • 모듈식 프로그래밍을 장려합니다.

제한 사항

  • Azure Portal 외부에서 만들거나 편집할 수 없습니다.
  • 복잡한 논리를 실행하기 위해 PowerShell 코드를 포함하는 코드 작업이 필요할 수 있습니다.
  • 텍스트 형식 중 하나로 변환할 수 없으며 텍스트 Runbook을 그래픽 형식으로 변환할 수 없습니다.
  • 그래픽 워크플로가 만든 PowerShell 코드를 보거나 직접 편집할 수 없습니다. 코드 작업에서 만든 코드를 볼 수 있습니다.
  • Linux Hybrid Runbook Worker에서 Runbook을 실행할 수 없습니다. Hybrid Runbook Worker를 사용하여 데이터 센터 또는 클라우드의 리소스 자동화를 참조하세요.
  • 그래픽 Runbook은 디지털 서명할 수 없습니다.

다음 단계