Azure Automation Runbook 형식

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

Type Description
그래픽 Windows PowerShell을 기반으로 하며 Azure Portal의 그래픽 편집기로 완전하게 생성 및 편집된 그래픽 Runbook입니다.
그래픽 PowerShell 워크플로 Windows PowerShell 워크플로를 기반으로 하며 Azure Portal의 그래픽 편집기로 완전하게 생성 및 편집된 그래픽 Runbook입니다.
PowerShell Windows PowerShell 스크립팅을 기반으로 하는 텍스트 Runbook입니다.
PowerShell 워크플로 Windows PowerShell 워크플로 스크립팅을 기반으로 하는 텍스트 Runbook입니다.
Python Python 스크립팅을 기반으로 하는 텍스트 Runbook입니다.

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

  • Runbook을 그래픽에서 텍스트 형식으로 또는 그 반대로 변환할 수 없습니다.
  • 형식이 다른 Runbook을 자식 Runbook으로 사용하는 경우 제한 사항이 있습니다. 자세한 내용은 Azure Automation의 자식 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은 디지털 서명할 수 없습니다.

PowerShell Runbook

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

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

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

참고

Runbook 실행 시 런타임 버전을7.1(미리 보기)로 선택하면 7.1 런타임 버전을 대상으로 하는 PowerShell 모듈이 사용되고 런 타임 버전을5.1로 선택하면 5.1 런타임 버전을 대상으로 하는 PowerShell 모듈이 사용됩니다.

모듈에 적합한 런타임 버전을 선택해야 합니다.

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

Runbook 형식입니다.

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

장점

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

제한 사항 - 버전 5.1

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

알려진 문제 - 버전 5.1

PowerShell Runbook에 대해 현재 알려진 문제는 다음과 같습니다.

  • PowerShell Runbook이 null 값을 갖는 암호화되지 않은 변수 자산을 가져올 수 없습니다.
  • PowerShell Runbook은 이름에 *~*가 포함된 변수 자산을 검색할 수 없습니다.
  • PowerShell Runbook의 반복적인 Get-Process 작업은 80회 반복 후에 크래시가 발생할 수 있습니다.
  • PowerShell Runbook이 한 번에 대량의 데이터를 출력 스트림에 쓰려고 하면 실패할 수 있습니다. 일반적으로 Runbook이 큰 개체를 사용하는 데 필요한 정보만 출력하도록 하여 이 문제를 해결할 수 있습니다. 예를 들어 제한 없이 Get-Process를 사용하는 대신 Get-Process | Select ProcessName, CPU에서와 같이 cmdlet이 필요한 매개 변수만 출력하도록 할 수 있습니다.

제한 사항 - 7.1(미리 보기)

  • Azure Automation 내부 PowerShell cmdlet은 Linux Hybrid Runbook Worker에서 지원되지 않습니다. Automation 계정 공유 리소스(자산) 함수에 액세스하려면 Python Runbook의 시작 부분에 모듈을 가져와 automationassets 야 합니다.
  • PowerShell 7 런타임 버전의 경우 가져온 모듈에 대해 모듈 활동이 추출되지 않습니다.
  • PSCredential Runbook 매개 변수 형식은 PowerShell 7 런타임 버전에서 지원되지 않습니다.
  • PowerShell 7.x는 워크플로를 지원하지 않습니다. 자세한 내용은 정보를 참조하세요.
  • PowerShell 7.x는 현재 서명된 Runbook을 지원하지 않습니다.
  • 소스 제어 통합은 PowerShell 7.1을 지원하지 않습니다. 또한 원본 제어의 PowerShell 7.1 Runbook은 Automation 계정에서 런타임 5.1로 만들어집니다.

알려진 문제 - 7.1(미리 보기)

  • 이 미리 보기에서는 자식 스크립트를 사용하여 .\child-runbook.ps1 실행할 수 없습니다. 해결 방법: (내부 cmdlet) 또는 Start-AzAutomationRunbookAz.Automation 모듈을 사용하여 Start-AutomationRunbook 부모 Runbook에서 다른 Runbook을 시작합니다.
  • 로깅 기본 설정을 정의하는 Runbook 속성은 PowerShell 7 런타임에서 지원되지 않습니다.
    해결 방법: Runbook 시작 시 기본 설정을 아래와 같이 명시적으로 설정합니다.
        $VerbosePreference = "Continue"
    
        $ProgressPreference = "Continue"
    
  • Azure Automation 이 버전을 사용하는 예기치 않은 동작이 발생할 수 있으므로 PowerShell 7 런타임용 버전 2.4.0 버전으로 모듈을 가져오 Az.Accounts 지 않습니다.
  • PowerShell 7 런타임에서 실행되는 작업에 대한 오류 출력 스트림에 서식 문제가 발생할 수 있습니다.
  • 다른 모듈에 종속된 PowerShell 7.1 모듈을 가져올 때 종속 모듈의 PowerShell 7.1 버전이 설치된 경우에도 가져오기 단추가 회색으로 표시될 수 있습니다. 예를 들어 Az.Compute 버전 4.20.0은 Az.Accounts = 2.6.0에 종속됩니다 >. 이 문제는 PowerShell 5.1의 동일한 종속 모듈이 버전 요구 사항을 충족하지 않는 경우에 발생합니다. 예를 들어 5.1 버전의 Az.Accounts는 2.6.0입니다 < .
  • 웹후크를 사용하여 PowerShell 7 Runbook을 시작하면 웹후크 입력 매개 변수를 잘못된 JSON으로 자동 변환합니다.

PowerShell 워크플로 Runbook

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

참고

PowerShell 7.1은 워크플로 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 및 Python 3에서 컴파일됩니다. Python 3 Runbook은 현재 미리 보기로 제공됩니다. Azure Portal의 텍스트 편집기를 사용하여 Runbook의 코드를 직접 편집할 수 있습니다. 또한 오프라인 텍스트 편집기를 사용할 수 있고 Azure Automation으로 Runbook을 가져올 수 있습니다.

Python 3 Runbook은 다음과 같은 Azure 글로벌 인프라에서 지원됩니다.

  • Azure 글로벌
  • Azure Government

장점

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

제한 사항

  • Python 스크립팅에 대해 잘 알아야 합니다.
  • 타사 라이브러리를 사용하려면 Automation 계정으로 패키지를 가져와야 합니다.
  • PowerShell/PowerShell 워크플로에서 Start-AutomationRunbook cmdlet을 사용하여 Python 3 Runbook(미리 보기)을 시작해도 작동하지 않습니다. Az.Automation 모듈의 Start-AzAutomationRunbook cmdlet 또는 AzureRm.Automation 모듈의 Start-AzureRmAutomationRunbook cmdlet을 사용하여 이 제한을 해결할 수 있습니다. 
  • Azure Automation sys.stderr를 지원하지 않습니다.
  • Python automationassets 패키지는 pypi.org 사용할 수 없으므로 Windows 컴퓨터로 가져올 수 없습니다.

여러 Python 버전

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 작업이 예외 메시지 invalid interpreter executable path로 실패하는 경우가 있습니다. 작업이 지연되거나 10분 이상 시작되거나 Start-AutomationRunbook을 사용하여 Python 3 Runbook을 시작하는 경우 이 예외가 표시될 수 있습니다. 작업이 지연되는 경우 Runbook을 다시 시작하는 것으로 충분합니다. 다음 단계를 사용하는 경우 하이브리드 작업은 문제 없이 작동해야 합니다.

  1. PYTHON_3_PATH라는 새 환경 변수를 만들고 설치 폴더를 지정합니다. 예를 들어 설치 폴더가 C:\Python3인 경우 이 경로를 변수에 추가해야 합니다.
  2. 환경 변수를 설정하면 컴퓨터를 다시 시작합니다.

다음 단계