확장성 작업에 사용할 PowerShell 스크립트 및 종속성 모듈이 포함된 ZIP 패키지를 생성할 수 있습니다.

확장성 작업을 위한 스크립트를 구축하는 방법에는 두 가지가 있습니다.

  • Cloud Assembly의 확장성 작업 편집기에서 스크립트를 직접 작성합니다.
  • 로컬 환경에서 스크립트를 생성하고 이를 모든 관련 종속성과 함께 ZIP 패키지에 추가합니다.
ZIP 패키지를 사용하면 확장성 작업에 사용하기 위해 Cloud Assembly로 가져올 수 있는 작업 스크립트 및 종속성의 미리 구성된 사용자 지정 템플릿을 생성할 수 있습니다.
참고: PowerCLI cmdlet을 종속성으로 정의하거나 ZIP 패키지로 번들로 제공할 필요가 없습니다. PowerCLI cmdlet은 Cloud Assembly 서비스의 PowerShell 런타임으로 미리 구성됩니다.

또한 ZIP 패키지를 사용하여 여러 PowerShell 스크립트 파일이 포함된 확장성 작업을 생성할 수 있습니다. 여러 스크립트 파일을 사용하면 확장성 작업 코드의 구조를 구성하는 데 유용할 수 있습니다.

사전 요구 사항

PowerShell 및 PowerCLI에 대해 잘 알고 있는지 확인합니다. Docker Hub에서 PowerShell Core, PowerCLI 10, PowerNSX 및 여러 커뮤니티 모듈 및 스크립트 예가 포함된 Docker 이미지를 찾을 수 있습니다.

프로시저

  1. 로컬 시스템에서 작업 스크립트 및 종속성에 대한 폴더를 생성합니다.
    예: /home/user1/zip-action
  2. .psm1 확장명을 가진 기본 PowerShell 스크립트를 폴더에 추가합니다.
    다음 스크립트는 main.psm1이라는 간단한 PowerShell 함수를 보여줍니다.
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    참고: PowerShell 확장성 작업의 출력은 함수의 본문에 표시되는 마지막 변수를 기반으로 합니다. 포함된 함수에 있는 다른 모든 변수는 삭제됩니다.
  3. (선택 사항) context 매개 변수를 사용하여 기본 PowerShell 스크립트에 프록시 구성을 추가합니다. 컨텍스트 매개 변수를 사용하여 PowerShell 스크립트에 프록시 구성 추가의 내용을 참조하십시오.
  4. (선택 사항) PowerShell 스크립트에 대한 종속성을 추가합니다.
    참고: PowerShell 종속성 스크립트는 .psm1 확장명을 사용해야 합니다. 스크립트와 스크립트가 저장된 하위 폴더에 동일한 이름을 사용합니다.
    1. Linux PowerShell 셸에 로그인합니다.
      참고: Cloud Assembly의 작업 기반 확장성의 런타임은 Linux 기반입니다. Windows 환경에서 컴파일되는 모든 PowerShell 종속성은 생성된 ZIP 패키지를 사용할 수 없게 만들 수 있습니다. PowerShell 스크립트가 Photon OS에서 실행하므로 설치된 타사 종속성은 VMware Photon OS와 호환되어야 합니다.
    2. /home/user1/zip-action 폴더로 이동합니다.
    3. Save-Module cmdlet을 실행하여 종속성이 포함된 PowerShell 모듈을 다운로드하고 저장합니다.
      Save-Module -Name <module name> -Path ./
    4. 추가 종속성 모듈에 대해 이전 하위 단계를 반복합니다.
      중요: 각 종속성 모듈이 별도의 하위 폴더에 있는지 확인합니다. PowerShell 모듈 작성 및 관리에 대한 자세한 내용은 PowerShell 스크립트 모듈을 작성하는 방법을 참조하십시오.
  5. 할당된 폴더에서 스크립트 요소와 종속성 모듈 하위 폴더(해당하는 경우)를 선택하고 이를 ZIP 패키지에 압축합니다.
    참고: 스크립트 모듈 하위 폴더와 종속성 모듈 하위 폴더는 모두 ZIP 패키지의 루트 수준에 저장해야 합니다. Linux 환경에서 ZIP 패키지를 생성할 때 패키지 컨텐츠가 루트 수준에 저장되지 않는 문제가 발생할 수 있습니다. 이 문제가 발생하는 경우 명령줄 셸에서 zip -r 명령을 실행하여 패키지를 생성합니다.
    cd your_script_and_dependencies_folder
    zip -r ../your_action_ZIP.zip *

다음에 수행할 작업

ZIP 패키지를 사용하여 확장성 작업 스크립트를 생성합니다. 확장성 작업을 생성하는 방법의 내용을 참조하십시오.