Azure Automation Runbook 형식

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

Type 설명
PowerShell Windows PowerShell 스크립팅을 기반으로 하는 텍스트 Runbook입니다. 현재 지원되는 버전은 PowerShell 7.2(GA)와 PowerShell 5.1(GA)입니다. PowerShell 7.1이 상위 제품 PowerShell에서 더 이상 지원되지 않으므로 장기적으로 지원되는 버전인 PowerShell 7.2에서 Runbook을 만드는 것이 좋습니다.
PowerShell 워크플로 Windows PowerShell 워크플로 스크립팅을 기반으로 하는 텍스트 Runbook입니다.
Python Python 스크립팅을 기반으로 하는 텍스트 Runbook입니다. 현재 지원되는 버전은 Python 3.8(GA)과 Python 3.10(미리 보기)입니다. Python 2.7이 상위 제품 Python에서 더 이상 지원되지 않으므로 장기적으로 지원되는 버전에서 Runbook을 만드는 것이 좋습니다.
그래픽 Windows PowerShell을 기반으로 하며 Azure Portal의 그래픽 편집기로 완전하게 생성 및 편집된 그래픽 Runbook입니다.
그래픽 PowerShell 워크플로 Windows PowerShell 워크플로를 기반으로 하며 Azure Portal의 그래픽 편집기로 완전하게 생성 및 편집된 그래픽 Runbook입니다.

참고 항목

Azure Automation은 상위 제품 PowerShell Python에서 게시한 타임라인에 따라 PowerShell 및 Python 언어 버전의 지원 수명 주기를 따릅니다. 지원되는 언어 버전에서 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 샌드박스와 Hybrid Runbook Worker는 서로 다른 런타임 버전을 나란히 대상으로 지정하는 여러 PowerShell Runbook을 실행할 수 있습니다.

참고 항목

  • 현재 PowerShell 7.2 런타임 버전은 인도 중부, UAE 중부, 이스라엘 중부, 이탈리아 북부, 독일 북부, Gov 클라우드를 제외한 모든 공용 지역에서 클라우드 및 하이브리드 작업 모두에서 지원됩니다.
  • Runbook 실행 시 런타임 버전7.2로 선택하면 7.2 런타임 버전을 대상으로 지정하는 PowerShell 모듈이 사용되며, 런타임 버전5.1로 선택하면 5.1 런타임 버전을 대상으로 지정하는 PowerShell 모듈이 사용됩니다. 이는 PowerShell 7.1(미리 보기) 모듈 및 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 7.2 런타임 버전은 인도 중부, UAE 중부, 이스라엘 중부, 이탈리아 북부, 독일 북부, Gov 클라우드를 제외한 모든 공용 지역에서 클라우드 및 하이브리드 작업 모두에서 지원됩니다.

  • PowerShell 7.2 런타임 버전의 경우 가져온 모듈에 대한 모듈 작업이 추출되지 않습니다. VS Code용 Azure Automation 확장을 사용하여 Runbook 작성 환경을 간소화합니다.
  • PowerShell 7.x는 워크플로를 지원하지 않습니다. 자세한 내용은 PowerShell 워크플로를 참조하세요.
  • PowerShell 7.x는 현재 서명된 Runbook을 지원하지 않습니다.
  • 소스 제어 통합은 PowerShell 7.2를 지원하지 않습니다. 또한 소스 제어의 PowerShell 7.2 Runbook은 Automation 계정에서 런타임 5.1로 만들어집니다.
  • Az 모듈 8.3.0이 기본적으로 설치됩니다. Az 버전이 Azure Portal 또는 API를 사용하여 다시 구성되면 선택한 Az 모듈 버전의 구성 요소 모듈 전체 목록이 표시됩니다.
  • 가져온 PowerShell 7.2 모듈은 작업 실행 중에 유효성이 검사됩니다. 성공적인 작업 실행을 위해 선택한 모듈의 모든 종속성도 가져와야 합니다.
  • Azure Runbook은 -credential이 포함된 Start-Job을 지원하지 않습니다.
  • Azure는 일부 PowerShell 매개 변수를 지원하지 않습니다. 자세히 알아보기.

알려진 문제

  • C:\modules 같은 내부 파일 경로에 종속된 Runbook은 서비스 백 엔드 인프라의 변경으로 인해 실패할 수 있습니다. 내부 파일 경로에 대한 종속성이 없도록 Runbook 코드를 변경하고 Get-ChildItem을 사용하여 필요한 모듈 정보를 가져옵니다.

  • Get-AzStorageAccount cmdlet은 다음 오류와 함께 실패할 수 있습니다. Get-AzStorageAccount 명령을 모듈 Az.Storage에서 찾았지만 모듈을 로드할 수 없습니다.

  • .\child-runbook.ps1을 사용하여 자식 스크립트를 실행하는 것은 지원되지 않습니다.
    해결 방법: Start-AutomationRunbook(내부 cmdlet) 또는 Start-AzAutomationRunbook(Az.Automation 모듈에서)을 사용하여 부모 Runbook에서 다른 Runbook을 시작합니다.

  • ExchangeOnlineManagement 모듈 버전 3.0.0 이상을 사용하는 경우 오류가 발생할 수 있습니다. 이 문제를 해결하려면 PowerShellGetPackageManagement 모듈을 명시적으로 업로드해야 합니다.

  • Az.Automation 모듈 내에서 New-AzAutomationVariable cmdlet을 활용하여 개체 형식의 변수를 업로드하면 작업이 예상대로 작동하지 않습니다.

    해결 방법: ConvertTo-Json cmdlet을 사용하여 개체를 JSON 문자열로 변환한 다음, JSON 문자열을 해당 값으로 사용하여 변수를 업로드합니다. 이 해결 방법을 사용하면 Azure Automation 환경 내에서 변수를 JSON 문자열로 적절하게 처리할 수 있습니다.

    예제 - Azure VM에 대한 정보가 저장된 PowerShell 개체 만들기

      # Retrieve Azure virtual machines with status information for the 'northeurope' region 
      $AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"} 
    
      $VMstopatch = @($AzVM).Id 
      # Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.) 
      New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch 
    
      # Convert the object to a JSON string 
      $jsonString = $VMstopatch | ConvertTo-Json 
    
      # Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook) 
      New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString 
    

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 7 이상 버전에서는 PowerShell 워크플로가 지원되지 않습니다. 따라서 오래된 Runbook은 업그레이드할 수 없습니다.
  • 최신 PowerShell 7 이상 버전에 비해 병렬 실행을 비효율적으로 처리합니다.
  • 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의 경우 Python 2.7이 설치되어 있어야 Windows Hybrid Runbook Worker가 지원됩니다.
  • Python 3.8 Cloud Jobs의 경우 Python 3.8 버전이 지원됩니다. 서로 다른 버전에서 코드가 호환되는 경우에는 3.x 버전의 스크립트 및 패키지가 작동할 수 있습니다.
  • Windows 컴퓨터의 Python 3.8 하이브리드 작업의 경우 사용하려는 어떤 3.x 버전도 설치하도록 선택할 수 있습니다.
  • Linux 컴퓨터의 Python 3.8 하이브리드 작업의 경우 컴퓨터에 설치된 Python 3 버전에 따라 DSC OMSConfig 및 Linux Hybrid Worker를 실행할 수 있습니다. Python 3 버전 간에 메서드 서명 또는 계약에 호환성이 손상되는 변경이 없는 경우 다른 버전이 작동해야 합니다.

제한 사항

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

  • Python 3.10(미리 보기) 모듈의 경우 현재 cp310 Linux OS를 대상으로 하는 휠 파일만 지원됩니다. 자세한 정보
  • 원본 제어 통합은 지원되지 않습니다.
  • Python 3.10(미리 보기)용 사용자 지정 패키지는 작업 런타임 중에만 유효성이 검사됩니다. 패키지가 런타임에서 호환되지 않거나 패키지의 필수 종속성을 자동화 계정으로 가져오지 않으면 작업이 실패할 것으로 예상됩니다.
  • 현재 Python 3.10(미리 보기) Runbook은 Azure Portal에서만 지원됩니다. Rest API 및 PowerShell은 지원되지 않습니다.

여러 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은 디지털 서명할 수 없습니다.

다음 단계