sam remote test-event를 사용한 클라우드 테스트 소개 - AWS Serverless Application Model

sam remote test-event를 사용한 클라우드 테스트 소개

AWS Serverless Application Model Command Line Interface(AWS SAM CLI) sam remote test-event 명령을 사용하여 AWS Lambda 함수의 공유 가능한 테스트 이벤트에 액세스하고 관리할 수 있습니다.

공유 가능한 테스트 이벤트에 대해 자세히 알아보려면 AWS Lambda 개발자 안내서공유 가능한 테스트 이벤트 섹션을 참조하세요.

sam remote test-event를 사용하려면 다음을 완료하여 AWS SAM CLI를 설치합니다.

이미 AWS SAM CLI를 설치한 경우 최신 버전의 AWS SAM CLI 버전으로 업그레이드하는 것이 좋습니다. 자세한 내용은 AWS SAMCLI업그레이드 섹션을 참조하세요.

sam remote test-event를 사용하기 전에 다음 사항에 대한 기본적인 이해를 하는 것이 좋습니다.

sam remote test-event를 사용하도록 AWS SAMCLI를 설정합니다.

AWS SAM CLI sam remote test-event 명령을 사용하려면 다음 설정 단계를 완료합니다.

  1. AWS 계정를 사용하도록 AWS SAM CLI를 구성하세요.- Lambda의 공유 가능한 테스트 이벤트는 동일한 AWS 계정 내에서 사용자가 액세스하고 관리할 수 있습니다. AWS 계정를 사용하도록 AWS SAM CLI를 구성하려면 AWS SAM CLI 구성 섹션을 참조하세요.

  2. 공유 가능한 테스트 이벤트에 대한 권한을 구성합니다. - 공유 가능한 테스트 이벤트에 액세스하고 관리하려면 적절한 권한이 있어야 합니다. 자세히 알아보려면 AWS Lambda 개발자 안내서공유 가능한 테스트 이벤트 섹션을 참조하세요.

sam remote test-event 명령 사용

이 AWS SAM CLI sam remote test-event 명령은 공유 가능한 테스트 이벤트에 액세스하고 관리하는 데 사용할 수 있는 다음과 같은 하위 명령을 제공합니다.

  • delete - Amazon EventBridge 스키마 레지스트리에서 공유 가능한 테스트 이벤트를 삭제합니다.

  • get - EventBridge 스키마 레지스트리에서 공유 가능한 테스트 이벤트를 가져옵니다.

  • list - EventBridge 스키마 레지스트리에서 함수에 대한 기존의 공유 가능한 테스트 이벤트를 나열합니다.

  • put - 로컬 파일의 이벤트를 EventBridge 스키마 레지스트리에 저장합니다.

AWS SAM CLI를 사용하여 이러한 하위 명령을 나열하려면 다음을 실행합니다.

$ sam remote test-event --help

공유 가능한 테스트 이벤트 삭제

다음과 함께 delete 하위 명령을 사용하여 공유 가능한 테스트 이벤트를 삭제할 수 있습니다.

  • 삭제할 공유 가능한 테스트 이벤트의 이름을 제공합니다.

  • 이벤트와 연결된 Lambda 함수의 허용 가능한 ID를 제공합니다.

  • Lambda 함수 논리적 ID를 제공하는 경우 Lambda 함수와 관련된 AWS CloudFormation 스택 이름도 제공해야 합니다.

다음은 그 예제입니다.

$ sam remote test-event delete HelloWorldFunction --stack-name sam-app --name demo-event

delete 하위 명령과 함께 사용할 옵션 목록은 sam remote test-event delete 섹션을 참조하세요. AWS SAM CLI에서 다음을 수행할 수도 있습니다.

$ sam remote test-event delete --help

공유 가능한 테스트 이벤트 생성

다음과 함께 get 하위 명령을 사용하여 EventBridge 스키마 레지스트리에서 공유 가능한 테스트 이벤트를 가져올 수 있습니다.

  • 가져올 공유 가능한 테스트 이벤트의 이름을 제공합니다.

  • 이벤트와 연결된 Lambda 함수의 허용 가능한 ID를 제공합니다.

  • Lambda 함수 논리적 ID를 제공하는 경우 Lambda 함수와 관련된 AWS CloudFormation 스택 이름도 제공해야 합니다.

다음은 sam-app 스택의 HelloWorldFunction Lambda 함수와 연결된 demo-event라는 공유 가능한 테스트 이벤트를 가져오는 예제입니다. 이 명령은 이벤트를 콘솔에 인쇄합니다.

$ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event

공유 가능한 테스트 이벤트를 가져와 로컬 컴퓨터에 저장하려면 --output-file 옵션을 사용하고 파일 경로와 이름을 제공합니다. 다음은 현재 작업 디렉터리에 demo-eventdemo-event.json로 저장하는 예제입니다.

$ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event --output-file demo-event.json

get 하위 명령과 함께 사용할 옵션 목록은 sam remote test-event get 섹션을 참조하세요. AWS SAM CLI에서 다음을 수행할 수도 있습니다.

$ sam remote test-event get --help

공유 가능한 테스트 이벤트 나열

스키마 레지스트리에서 특정 Lambda 함수에 대한 모든 공유 가능한 테스트 이벤트를 나열할 수 있습니다. 다음과 함께 list 하위 명령을 사용합니다.

  • 이벤트와 연결된 Lambda 함수의 허용 가능한 ID를 제공합니다.

  • Lambda 함수 논리적 ID를 제공하는 경우 Lambda 함수와 관련된 AWS CloudFormation 스택 이름도 제공해야 합니다.

다음은 sam-app 스택의 HelloWorldFunction Lambda 함수와 관련된 모든 공유 가능한 테스트 이벤트 목록을 가져오는 예제입니다.

$ sam remote test-event list HelloWorldFunction --stack-name sam-app

list 하위 명령과 함께 사용할 옵션 목록은 sam remote test-event list 섹션을 참조하세요. AWS SAM CLI에서 다음을 수행할 수도 있습니다.

$ sam remote test-event list --help

공유 가능한 테스트 이벤트 저장

공유 가능한 테스트 이벤트를 EventBridge 스키마 레지스트리에 저장할 수 있습니다. 다음과 함께 put 하위 명령을 사용합니다.

  • 공유 가능한 테스트 이벤트와 관련된 Lambda 함수의 허용 가능한 ID를 제공합니다.

  • 공유 가능한 테스트 이벤트의 이름을 제공합니다.

  • 업로드할 로컬 이벤트의 파일 경로와 이름을 제공합니다.

다음은 로컬 demo-event.json 이벤트를 demo-event로 저장하고 이를 sam-app 스택의 HelloWorldFunction Lambda 함수와 연결하는 예제입니다.

$ sam remote test-event put HelloWorldFunction --stack-name sam-app --name demo-event --file demo-event.json

EventBridge 스키마 레지스트리에 이름이 같은 공유 가능한 테스트 이벤트가 있는 경우 AWS SAM CLI는 이를 덮어쓰지 않습니다. 덮어쓰려면 --force 옵션을 명령에 추가합니다.

put 하위 명령과 함께 사용할 옵션 목록은 sam remote test-event put 섹션을 참조하세요. AWS SAM CLI에서 다음을 수행할 수도 있습니다.

$ sam remote test-event put --help

공유 가능한 테스트 이벤트 사용

공유 가능한 테스트 이벤트를 사용하여 sam remote invoke 명령으로 AWS 클라우드에서 Lambda 함수를 테스트합니다. 자세한 내용은 공유 가능한 테스트 이벤트를 클라우드의 Lambda 함수에 전달을 참조하십시오.

공유 가능한 테스트 이벤트 관리

이 주제에는 공유 가능한 테스트 이벤트를 관리하고 사용하는 방법에 대한 예제가 포함되어 있습니다.

공유 가능한 테스트 이벤트를 가져와 수정하고 사용하기

EventBridge 스키마 레지스트리에서 공유 가능한 테스트 이벤트를 가져오고, 로컬에서 수정하고, AWS 클라우드에서 Lambda 함수와 함께 로컬 테스트 이벤트를 사용할 수 있습니다. 다음은 그 예제입니다.

  1. 공유 가능한 테스트 이벤트 검색 - sam remote test-event get 하위 명령을 사용하여 특정 Lambda 함수에 대한 공유 가능한 테스트 이벤트를 검색하고 로컬에 저장합니다.

    $ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event --output-file demo-event.json
  2. 공유 가능한 테스트 이벤트 수정 - 원하는 텍스트 편집기를 사용하여 공유 가능한 테스트 이벤트를 수정합니다.

  3. 공유 가능한 테스트 이벤트 사용 - sam remote invoke 명령을 사용하고 이벤트의 파일 경로와 이름을 --event-file로 입력합니다.

    $ sam remote invoke HelloWorldFunction --stack-name sam-app --event-file demo-event.json

공유 가능한 테스트 이벤트를 가져와 수정하고 업로드하고 사용하기

EventBridge 스키마 레지스트리에서 공유 가능한 테스트 이벤트를 가져와서 로컬에서 수정하고 업로드할 수 있습니다. 그런 다음 공유 가능한 테스트 이벤트를 AWS 클라우드의 Lambda 함수에 직접 전달할 수 있습니다. 다음은 그 예제입니다.

  1. 공유 가능한 테스트 이벤트 검색 - sam remote test-event get 하위 명령을 사용하여 특정 Lambda 함수에 대한 공유 가능한 테스트 이벤트를 검색하고 로컬에 저장합니다.

    $ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event --output-file demo-event.json
  2. 공유 가능한 테스트 이벤트 수정 - 원하는 텍스트 편집기를 사용하여 공유 가능한 테스트 이벤트를 수정합니다.

  3. 공유 가능한 테스트 이벤트 업로드 - sam remote test-event put 하위 명령을 사용하여 공유 가능한 테스트 이벤트를 EventBridge 스키마 레지스트리에 업로드하고 저장합니다. 이 예제에서는 --force 옵션을 사용하여 공유 가능 테스트의 이전 버전을 덮어씁니다.

    $ sam remote test-event put HelloWorldFunction --stack-name sam-app --name demo-event --file demo-event.json --force
  4. 공유 가능한 테스트 이벤트를 Lambda 함수로 전달 - sam remote invoke 명령을 사용하여 공유 가능한 테스트 이벤트를 AWS 클라우드의 Lambda 함수에 직접 전달합니다.

    $ sam remote invoke HelloWorldFunction --stack-name sam-app --test-event-name demo-event