

# 콘솔에서 Lambda 함수 테스트
<a name="testing-functions"></a>

테스트 이벤트로 함수를 호출하여 콘솔에서 Lambda 함수를 테스트할 수 있습니다. *테스트 이벤트*는 함수에 대한 JSON 입력입니다. 함수에 입력이 필요하지 않은 경우 이벤트는 빈 문서(`({})`)가 될 수 있습니다.

콘솔에서 테스트를 실행하면 Lambda는 테스트 이벤트와 함께 동시에 함수를 간접 호출합니다. 함수 런타임은 JSON을 객체로 변환하고 처리를 위해 코드의 핸들러 메서드로 전달합니다.

**테스트 이벤트 생성**  
콘솔에서 테스트하려면 먼저 프라이빗 또는 공유 가능한 테스트 이벤트를 생성해야 합니다.

## 테스트 이벤트로 함수 호출
<a name="invoke-with-event"></a>

**함수 테스트**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 테스트하려는 함수의 이름을 선택합니다.

1. **테스트(Test)** 탭을 선택합니다.

1. **테스트 이벤트**에서 **새 이벤트 생성** 또는 **저장된 이벤트 편집**을 선택한 다음 사용하려는 저장된 이벤트를 선택합니다.

1. 선택 사항 - 이벤트 JSON용 **템플릿**을 선택합니다.

1. **테스트(Test)**를 선택합니다.

1. 테스트 결과를 확인하려면 **실행 결과(Execution result)**에서 **세부 정보(Details)**를 확장합니다.

테스트 이벤트를 저장하지 않고 함수를 간접 호출하려면 저장하기 전에 **테스트(Test)**를 선택합니다. 이렇게 하면 세션 기간 동안에만 Lambda가 보존하는 저장되지 않은 테스트 이벤트가 생성됩니다.

Node.js, Python, Ruby 런타임의 경우 **코드** 탭에서 기존에 저장되거나 저장되지 않은 테스트 이벤트에 액세스할 수도 있습니다. **테스트 이벤트** 섹션을 사용하여 테스트를 생성, 편집 및 실행합니다.

## 프라이빗 테스트 이벤트 생성
<a name="creating-private-events"></a>

프라이빗 테스트 이벤트는 이벤트 작성자만 사용할 수 있으며, 사용하기 위해 추가 권한이 필요하지 않습니다. 함수당 최대 10개의 프라이빗 테스트 이벤트를 생성하고 저장할 수 있습니다.

**프라이빗 테스트 이벤트 생성**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 테스트하려는 함수의 이름을 선택합니다.

1. **테스트(Test)** 탭을 선택합니다.

1. **테스트 이벤트(Test event)**에서 다음을 수행합니다.

   1. **템플릿(Template)**을 선택합니다.

   1. 테스트의 **이름(Name)**을 입력합니다.

   1. 텍스트 입력 상자에 JSON 테스트 이벤트를 입력합니다.

   1. **이벤트 공유 설정(Event sharing settings)**에서 **프라이빗(Private)**을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

Node.js, Python, Ruby 런타임의 경우 **코드** 탭에서 테스트 이벤트를 생성할 수도 있습니다. **테스트 이벤트** 섹션을 사용하여 테스트를 생성, 편집 및 실행합니다.

## 공유 가능한 테스트 이벤트 생성
<a name="creating-shareable-events"></a>

공유 가능한 테스트 이벤트는 동일한 AWS 계정의 다른 사용자와 공유할 수 있는 테스트 이벤트입니다. 다른 사용자의 공유 가능한 테스트 이벤트를 편집하고 해당 이벤트로 자신의 함수를 간접 호출할 수 있습니다.

Lambda는 `lambda-testevent-schemas`로 이름이 지정된 [Amazon EventBridge(CloudWatch Events) 스키마 레지스트리](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema-registry.html)에 공유 가능한 테스트 이벤트를 스키마로 저장합니다. Lambda는 이 레지스트리를 사용하여 사용자가 생성한 공유 가능한 테스트 이벤트를 저장하고 호출하므로, 이 레지스트리를 편집하거나 `lambda-testevent-schemas`라는 이름을 사용하여 레지스트리를 생성하지 않는 것이 좋습니다.

공유 가능한 테스트 이벤트를 보고, 공유하고, 편집하려면 다음의 모든 [EventBridge(CloudWatch Events) Schema Registry API 작업](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/operations.html)에 대한 권한이 있어야 합니다.
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#CreateRegistry](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#CreateRegistry)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#CreateSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#CreateSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DeleteSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DeleteSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-version-schemaversion.html#DeleteSchemaVersion](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-version-schemaversion.html#DeleteSchemaVersion)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#DescribeRegistry](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#DescribeRegistry)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DescribeSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DescribeSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discover.html#GetDiscoveredSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discover.html#GetDiscoveredSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-versions.html#ListSchemaVersions](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-versions.html#ListSchemaVersions)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#UpdateSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#UpdateSchema)

공유 가능한 테스트 이벤트에 대한 편집 내용을 저장하면 해당 이벤트를 덮어씁니다.

공유 가능한 테스트 이벤트를 만들거나, 편집하거나, 볼 수 없는 경우 계정에 이러한 작업에 필요한 권한이 있는지 확인합니다. 필요한 권한이 있지만 여전히 공유 가능한 테스트 이벤트에 액세스할 수 없는 경우, EventBridge(CloudWatch Events) 레지스트리에 대한 액세스 권한을 제한할 수 있는 [리소스 기반 정책](access-control-resource-based.md)이 있는지 확인합니다.

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

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 테스트하려는 함수의 이름을 선택합니다.

1. **테스트(Test)** 탭을 선택합니다.

1. **테스트 이벤트(Test event)**에서 다음을 수행합니다.

   1. **템플릿(Template)**을 선택합니다.

   1. 테스트의 **이름(Name)**을 입력합니다.

   1. 텍스트 입력 상자에 JSON 테스트 이벤트를 입력합니다.

   1. **이벤트 공유 설정(Event sharing settings)**에서 **공유 가능(Shareable)**을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

**AWS Serverless Application Model에서 공유 가능한 테스트 이벤트를 사용합니다.**  
AWS SAM을 사용하여 공유 가능한 테스트 이벤트를 간접 호출할 수 있습니다. [AWS Serverless Application Model 개발자 안내서](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/using-sam-cli-remote-test-event.html)의 [https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/using-sam-cli-remote-test-event.html](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/using-sam-cli-remote-test-event.html) 참조

## 공유 가능한 테스트 이벤트 스키마 삭제
<a name="deleting-test-schemas"></a>

공유 가능한 테스트 이벤트를 삭제하면 Lambda는 `lambda-testevent-schemas` 레지스트리에서 해당 이벤트를 제거합니다. 레지스트리에서 공유 가능한 마지막 테스트 이벤트를 제거하면 Lambda는 해당 레지스트리를 삭제합니다.

사용자가 함수를 삭제할 경우 Lambda는 연결된 공유 가능한 테스트 이벤트 스키마를 삭제하지 않습니다. 이러한 리소스는 [EventBridge(CloudWatch Events) 콘솔](https://console.aws.amazon.com/events)에서 수동으로 정리해야 합니다.