.zip 파일 아카이브로 PowerShell Lambda 함수 배포하기

.zip 파일 아카이브로 PowerShell Lambda 함수 배포하기

PowerShell 런타임용 배포 패키지에는 PowerShell 스크립트, 스크립트에 필요한 PowerShell 모듈, 그리고 PowerShell Core를 호스팅하는 데 필요한 어셈블리가 포함됩니다.

출처: AWS Lambda 개발자 안내서

본문

Lambda 함수 만들기

Lambda로 PowerShell 스크립트를 작성·호출하는 것을 시작하려면 New-AWSPowerShellLambda cmdlet을 사용해 템플릿 기반의 스타터 스크립트를 만들 수 있어요. 스크립트를 Lambda에 배포할 때는 Publish-AWSPowerShellLambda cmdlet을 사용합니다. 그다음 명령줄이나 Lambda 콘솔에서 스크립트를 테스트하면 됩니다.

새 PowerShell 스크립트를 만들고 업로드하고 테스트하려면 다음을 수행하세요:

  1. 사용 가능한 템플릿 목록을 보려면 다음 명령을 실행합니다.
  2. Basic 템플릿 기반의 샘플 스크립트를 만들려면 다음 명령을 실행합니다. 현재 디렉토리의 새 하위 디렉토리에 MyFirstPSScript.ps1이라는 새 파일이 생성돼요. 디렉토리 이름은 -ScriptName 파라미터를 기반으로 생성됩니다. -Directory 파라미터를 사용하면 다른 디렉토리를 선택할 수도 있어요. 새 파일에는 다음과 같은 내용이 들어 있는 걸 볼 수 있어요.
  3. PowerShell 스크립트의 로그 메시지가 Amazon CloudWatch Logs로 전송되는 방식을 보려면 샘플 스크립트의 Write-Host 줄 주석을 해제하세요. Lambda 함수에서 데이터를 반환하는 방법을 보여주기 위해 스크립트 끝에 $PSVersionTable을 새 줄로 추가합니다. 이렇게 하면 $PSVersionTable이 PowerShell 파이프라인에 추가됩니다. PowerShell 스크립트 실행이 끝나면 PowerShell 파이프라인의 마지막 객체가 Lambda 함수의 반환 데이터가 돼요. $PSVersionTable은 실행 중인 환경에 대한 정보도 제공하는 PowerShell 전역 변수입니다. 이 변경을 적용한 뒤 샘플 스크립트의 마지막 두 줄은 다음과 같아 보입니다.
  4. MyFirstPSScript.ps1 파일을 편집한 뒤 스크립트가 있는 디렉토리로 이동하고, 다음 명령을 실행해 스크립트를 Lambda에 게시합니다. -Name 파라미터는 Lambda 콘솔에 표시되는 Lambda 함수 이름을 지정한다는 점을 기억하세요. 이 함수를 사용해 스크립트를 수동으로 호출할 수 있어요.
  5. AWS Command Line Interface(AWS CLI)의 invoke 명령을 사용해 함수를 호출합니다.

더 알아보기 (Learn more)