

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# sam local start-lambda를 사용한 테스트 소개
<a name="using-sam-cli-local-start-lambda"></a>

하위 명령을 사용하여 AWS SAM CLI AWS CLI 및 SDK`sam local start-lambda`를 통해 Lambda 함수를 호출합니다. SDKs 이 명령은 Lambda를 에뮬레이션하는 로컬 엔드포인트를 시작합니다.
+ 에 대한 소개는 단원을 AWS SAM CLI참조하십시오. [란 무엇입니까 AWS SAM CLI?](what-is-sam-overview.md#what-is-sam-cli) 
+ `sam local start-lambda` 명령 옵션 목록은 [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md) 섹션을 참조하세요.

**참고**  
`sam local start-lambda`는 자동 체크포인트 및 재생 기능을 갖춘 내구성 있는 함수를 지원합니다. 내구성 함수는 로컬 Lambda 엔드포인트와 원활하게 작동합니다.

## 사전 조건
<a name="using-sam-cli-local-start-api-prerequisites"></a>

`sam local start-lambda`를 사용하려면 다음을 완료하여 AWS SAM CLI를 설치합니다.
+ [AWS SAM 사전 조건](prerequisites.md).
+ [AWS SAM CLI 설치](install-sam-cli.md).

`sam local start-lambda`를 사용하기 전에 다음 사항에 대한 기본적인 이해를 하는 것이 좋습니다.
+ [AWS SAM CLI 구성](using-sam-cli-configure.md).
+ [에서 애플리케이션 생성 AWS SAM](using-sam-cli-init.md).
+ [를 사용한 빌드 소개 AWS SAM](using-sam-cli-build.md).
+ [를 사용한 배포 소개 AWS SAM](using-sam-cli-deploy.md).

## sam local start-lambda 사용하기
<a name="using-sam-cli-local-start-lambda-use"></a>

`sam local start-lambda`를 실행하면 AWS SAMCLI는 현재 작업 디렉터리가 프로젝트의 루트 디렉터리라고 가정합니다. AWS SAMCLI는 먼저 `.aws-sam` 하위 폴더에서 `template.[yaml|yml]` 파일을 찾습니다. 찾을 수 없는 경우 AWS SAMCLI는 현재 작업 디렉터리 내에서 `template.[yaml|yml]` 파일을 찾습니다.

**sam local start-lambda를 사용하려면**

1. 프로젝트 디렉터리에서 다음 명령을 실행합니다.

   ```
   $ sam local start-lambda <options>
   ```

1.  AWS SAMCLI는 Lambda 함수를 로컬 Docker 컨테이너에 빌드합니다. 그런 다음 로컬 주소를 HTTP 서버 엔드포인트로 출력합니다. 다음은 예제입니다.

   ```
   $ sam local start-lambda
   Initializing the lambda functions containers.
   Local image is up-to-date
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../sam-app/hello_world as /var/task:ro,delegated, inside runtime container
   Containers Initialization is done.
   Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint.
   2023-04-13 07:25:43 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
    * Running on http://127.0.0.1:3001
   2023-04-13 07:25:43 Press CTRL+C to quit
   ```

1.  AWS CLI 또는 SDKs를 사용하여 로컬에서 Lambda 함수를 호출합니다.

   다음은 AWS CLI사용을 보여 주는 예제입니다.

   ```
   $ aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt
       
   StatusCode: 200
   (END)
   ```

   다음은 용를 AWS SDK 사용하는 예제입니다Python.

   ```
   import boto3
   from botocore.config import Config
   from botocore import UNSIGNED
   
   lambda_client = boto3.client('lambda',
                                endpoint_url="http://127.0.0.1:3001",
                                use_ssl=False,
                                verify=False,
                                config=Config(signature_version=UNSIGNED,
                                              read_timeout=1,
                                              retries={'max_attempts': 0}
                                              )
                               )
   lambda_client.invoke(FunctionName="HelloWorldFunction")
   ```

## 옵션
<a name="using-sam-cli-local-start-lambda-options"></a>

### 템플릿 지정의 경우 다음을 수행합니다.
<a name="using-sam-cli-local-start-lambda-options-template"></a>

 AWS SAMCLI가 참조할 템플릿을 지정하려면 `--template` 옵션을 사용합니다. AWS SAM CLI는 해당 AWS SAM 템플릿과 해당 템플릿이 가리키는 리소스만 로드합니다. 다음은 예제입니다.

```
$ sam local start-lambda --template myTemplate.yaml
```

 AWS SAM 템플릿에 대한 자세한 내용은 섹션을 참조하세요[AWS SAM 템플릿 구조](sam-specification-template-anatomy.md).

## 모범 사례
<a name="using-sam-cli-local-start-lambda-best"></a>

애플리케이션에 실행 중인 `sam build`의 `.aws-sam` 디렉터리가 있는 경우 함수 코드를 업데이트할 때마다 `sam build`를 실행해야 합니다. 그런 다음 `sam local start-lambda`를 실행하여 업데이트된 함수 코드를 로컬에서 테스트합니다.

로컬 테스트는 클라우드에 배포하기 전에 빠르게 개발하고 테스트할 수 있는 훌륭한 솔루션입니다. 하지만 로컬 테스트는 클라우드의 리소스 간 권한 등 모든 것을 검증하지는 않습니다. 가능한 한 클라우드에서 애플리케이션을 테스트하세요. 클라우드 테스트 워크플로의 속도를 높이려면 [`sam sync`를 사용](using-sam-cli-sync.md)하는 것이 좋습니다.

## 자세히 알아보기
<a name="using-sam-cli-local-start-lambda-learn"></a>

`sam local start-lambda` 옵션 목록은 [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md) 섹션을 참조하세요.