

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

# sam local invoke
<a name="sam-cli-command-reference-sam-local-invoke"></a>

이 페이지에서는 AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI) `sam local invoke` 하위 명령에 대한 참조 정보를 제공합니다.
+ 에 대한 소개는 단원을 AWS SAM CLI참조하십시오. [란 무엇입니까 AWS SAM CLI?](what-is-sam-overview.md#what-is-sam-cli) 
+ `sam local invoke` 하위 명령 사용에 대한 설명서는 섹션을 참조하세요 AWS SAM CLI[sam local invoke를 사용한 테스트 소개](using-sam-cli-local-invoke.md).

`sam local invoke` 하위 명령은 로컬에서 AWS Lambda 함수의 일회성 호출을 시작합니다.

**참고**  
신뢰할 수 없는 코드에는 SAM CLI의 로컬 호출 기능을 사용하지 않는 것이 좋습니다. 로컬 환경에서 완전히 격리하려면 Lambda 서비스에서 직접 코드를 실행합니다.

**참고**  
내구성이 뛰어난 함수의 경우는 자동 체크포인트 및 재생을 통해 상태 저장 실행을 `sam local invoke` 지원합니다. 컨테이너는 상태 지속성 및 재개를 처리하기 위해 내구성 함수 실행 중에 계속 실행됩니다.

## 사용법
<a name="ref-sam-cli-local-invoke-usage"></a>

```
$ sam local invoke <arguments> <options>
```

**참고**  
 AWS SAM 템플릿에 정의된 함수가 두 개 이상 있는 경우 호출하려는 함수 논리적 ID를 제공합니다.

## 인수
<a name="ref-sam-cli-local-invoke-args"></a>

**리소스 ID**  <a name="ref-sam-cli-local-invoke-args-resource-id"></a>
간접 호출을 위한 Lambda 함수의 ID입니다.  
이 인수는 선택 사항입니다. 애플리케이션에 단일 Lambda 함수가 포함된 경우 AWS SAM CLI는 이를 호출합니다. 애플리케이션에 여러 함수가 포함된 경우 간접 호출할 함수의 ID를 제공하십시오.  
*유효한 값*: 리소스의 논리적 ID 또는 리소스 ARN입니다.

## 옵션
<a name="ref-sam-cli-local-invoke-options"></a>

`--add-host LIST`  <a name="ref-sam-cli-local-invoke-options-add-host"></a>
호스트 이름과 IP 주소 매핑을 Docker 컨테이너의 호스트 파일에 전달합니다. 이 파라미터는 여러 번 전달할 수 있습니다.  

**Example**  
예시: `--add-host example.com:127.0.0.1`

`--beta-features | --no-beta-features`  <a name="ref-sam-cli-local-invoke-options-beta-features"></a>
베타 기능을 허용 또는 거부합니다.

`--config-env TEXT`  <a name="ref-sam-cli-local-invoke-options-config-env"></a>
사용할 구성 파일의 기본 매개변수 값을 지정하는 환경 이름입니다. 기본값은 “기본값”입니다. 구성 파일에 대한 자세한 내용은 [AWS SAMCLI구성 파일](serverless-sam-cli-config.md) 섹션을 참조하세요.

`--config-file PATH`  <a name="ref-sam-cli-local-invoke-options-config-file"></a>
사용할 기본 매개변수 값이 들어 있는 구성 파일의 경로 및 파일 이름입니다. 기본값은 프로젝트 디렉터리의 루트에 있는 “`samconfig.toml`“입니다. 구성 파일에 대한 자세한 내용은 [AWS SAMCLI구성 파일](serverless-sam-cli-config.md) 섹션을 참조하세요.

`--container-env-vars`  <a name="ref-sam-cli-local-invoke-options-container-env-vars"></a>
(선택 사항) 로컬에서 디버깅할 때 Lambda 함수 이미지 컨테이너에 환경 변수를 전달하십시오.

`--container-host TEXT`  <a name="ref-sam-cli-local-invoke-options-container-host"></a>
로컬로 에뮬레이션된 Lambda 컨테이너의 호스트입니다. 기본값은 `localhost`입니다. macOS의 Docker 컨테이너에서 AWS SAMCLI를 실행하려는 경우 `host.docker.internal`을 지정할 수 있습니다. 이외의 호스트에서 컨테이너를 실행하려면 원격 호스트의 IP 주소를 지정할 AWS SAM CLI수 있습니다.

`--container-host-interface TEXT`  <a name="ref-sam-cli-local-invoke-options-container-host-interface"></a>
컨테이너 포트가 바인딩해야 하는 호스트 네트워크 인터페이스의 IP 주소입니다. 기본값은 `127.0.0.1`입니다. 모든 인터페이스에 바인딩하는 데 `0.0.0.0`을 사용합니다.

`--debug`  <a name="ref-sam-cli-local-invoke-options-debug"></a>
디버그 로깅을 켜서 AWS SAMCLI가 생성한 디버그 메시지를 인쇄하고 타임스탬프를 표시합니다.

`--debug-args TEXT`  <a name="ref-sam-cli-local-invoke-options-debug-args"></a>
디버거에 전달할 추가 인수입니다.

`--debug-port, -d TEXT`  <a name="ref-sam-cli-local-invoke-options-debug-port"></a>
지정되면 Lambda 함수 컨테이너를 디버그 모드에서 시작하고 이 포트를 로컬 호스트에 노출합니다.

`--debugger-path TEXT`  <a name="ref-sam-cli-local-invoke-options-debugger-path"></a>
Lambda 컨테이너에 마운트된 디버거의 호스트 경로입니다.

`--docker-network TEXT`  <a name="ref-sam-cli-local-invoke-options-docker-network"></a>
Lambda Docker 컨테이너가 연결해야 하는 기존 Docker 네트워크의 이름 또는 ID와 기본 브리지 네트워크입니다. 이것이 지정되지 않으면 Lambda 컨테이너는 기본 브리지 Docker 네트워크에만 연결됩니다.

`--docker-volume-basedir, -v TEXT`  <a name="ref-sam-cli-local-invoke-options-docker-volume-basedir"></a>
 AWS SAM 파일이 있는 기본 디렉터리의 위치입니다. Docker가 원격 시스템에서 실행 중인 경우 Docker 시스템에 AWS SAM 파일이 있는 경로를 탑재하고 원격 시스템과 일치하도록이 값을 수정해야 합니다.

`--durable-execution-name TEXT`  <a name="ref-sam-cli-local-invoke-options-durable-execution-name"></a>
내구성 실행 이름(내구성 함수에만 해당)

`--env-vars, -n PATH`  <a name="ref-sam-cli-local-invoke-options-env-vars"></a>
Lambda 함수의 환경 변수에 대한 값을 포함하는 JSON 또는 `.env` 파일입니다. 파일 형식이 자동으로 감지됩니다. 환경 변수 파일에 대한 자세한 내용은 [환경 변수 파일](serverless-sam-cli-using-invoke.md#serverless-sam-cli-using-invoke-environment-file) 섹션을 참조하세요.

`--event, -e PATH`  <a name="ref-sam-cli-local-invoke-options-event"></a>
간접 호출 시 Lambda 함수로 전달되는 이벤트 데이터를 포함하는 JSON 파일입니다. 이 옵션을 지정하지 않으면 이벤트가 가정되지 않습니다. `stdin`에서 JSON을 입력하려면 '-' 값을 전달해야 합니다. 다양한 AWS 서비스의 이벤트 메시지 형식에 대한 자세한 내용은 *AWS Lambda 개발자 안내서*의 [다른 서비스 작업을](https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html) 참조하세요.

`--force-image-build`  <a name="ref-sam-cli-local-invoke-options-force-image-build"></a>
레이어가 있는 Lambda 함수를 간접 호출하는 데 사용된 이미지를 AWS SAMCLI가 다시 구축해야 하는지를 지정합니다.

`--help`  <a name="ref-sam-cli-local-invoke-options-help"></a>
이 메시지를 표시한 후 종료합니다.

`--hook-name TEXT`  <a name="ref-sam-cli-local-invoke-options-hook-name"></a>
 AWS SAMCLI 기능을 확장하는 데 사용되는 후크의 이름입니다.  
허용되는 값: `terraform`.

`--invoke-image TEXT`  <a name="ref-sam-cli-local-invoke-options-invoke-image"></a>
로컬 함수 간접 호출에 사용하려는 컨테이너 이미지의 URI입니다. 기본적으로, AWS SAM 은 Amazon ECR 퍼블릭으로부터 컨테이너 이미지를 가져옵니다([의 이미지 리포지토리 AWS SAM](serverless-image-repositories.md)에 나열됨). 다른 위치에서 이미지를 가져오려면 이 옵션을 사용합니다.  
예를 들어 `sam local invoke MyFunction --invoke-image amazon/aws-sam-cli-emulation-image-python3.8`입니다.

`--layer-cache-basedir DIRECTORY`  <a name="ref-sam-cli-local-invoke-options-layer-cache-basedir"></a>
템플릿에서 사용하는 레이어가 다운로드되는 기본 디렉토리의 위치를 지정합니다.

`--log-file, -l TEXT`  <a name="ref-sam-cli-local-invoke-options-log-file"></a>
런타임 로그를 전송할 로그 파일입니다.

`--mount-symlinks`  <a name="ref-sam-cli-local-invoke-options-mount-symlinks"></a>
 AWS SAM CLI이(가) 빌드하거나 호출할 파일에 존재하는 심볼릭 링크를 항상 마운트하도록 보장합니다. 이는 최상위 디렉터리(즉, 함수의 루트에 직접 있는 심볼릭 링크)에만 적용됩니다. 기본적으로, NodeJS에서 `node_modules`을(를) 위해 `build-in-source`을(를) 사용하는 데 필요한 경우를 제외하고 심볼릭 링크는 마운트되지 않습니다.

`--no-event`  <a name="ref-sam-cli-local-invoke-options-no-event"></a>
빈 이벤트와 함께 함수를 간접 호출합니다.

`--no-memory-limit`  <a name="ref-sam-cli-local-invoke-options-no-memory-limit"></a>
 AWS SAM 템플릿에 메모리가 구성된 경우에도 로컬 호출 중에 컨테이너의 메모리 제한을 제거합니다.

`--parameter-overrides`  <a name="ref-sam-cli-local-invoke-options-parameter-overrides"></a>
 CloudFormation 파라미터 재정의를 포함하는 문자열은 키-값 페어로 인코딩됩니다. AWS Command Line Interface ()와 동일한 형식을 사용합니다AWS CLI. AWS SAM CLI 형식은 명시적 키 및 값 키워드이며 각 재정의는 공백으로 구분됩니다. 다음은 두 가지 예제입니다.  
+ `--parameter-overrides ParameterKey=hello,ParameterValue=world`
+ `--parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana`

`--profile TEXT`  <a name="ref-sam-cli-local-invoke-options-profile"></a>
자격 증명을 가져오는 AWS 자격 증명 파일의 특정 프로필입니다.

`--region TEXT`  <a name="ref-sam-cli-local-invoke-options-region"></a>
배포할 AWS 리전입니다. 예를 들어 us-east-1입니다.

`--runtime TEXT`  <a name="ref-sam-cli-local-invoke-options-runtime"></a>
지정된 런타임을 사용하여 Lambda 함수를 로컬에서 간접 호출합니다. 이는 `template.yml` 파일에 정의된 런타임을 재정의합니다. 또한 원래 함수 구성을 수정하지 않고 다른 런타임으로 Lambda 함수를 테스트할 수 있습니다.

`--save-params`  <a name="ref-sam-cli-local-invoke-options-save-params"></a>
명령줄에 제공한 파라미터를 AWS SAM 구성 파일에 저장합니다.

`--shutdown`  <a name="ref-sam-cli-local-invoke-options-shutdown"></a>
종료 동작의 확장 처리를 테스트하기 위하여 간접 호출 완료 이후라도 종료 이벤트를 에뮬레이션합니다. 

`--skip-prepare-infra`  <a name="ref-sam-cli-local-invoke-options-skip-prepare-infra"></a>
인프라를 변경하지 않은 경우 준비 단계를 건너뜁니다. `--hook-name` 옵션과 함께 사용합니다.

`--skip-pull-image`  <a name="ref-sam-cli-local-invoke-options-skip-pull-image"></a>
기본 사항으로서, AWS SAMCLI 는 Lambda의 최신 원격 런타임 환경을 확인하고 로컬 이미지를 자동으로 업데이트하여 동기화를 유지합니다.  
Lambda 런타임 환경의 최신 Docker 이미지를 가져오지 않으려면 이 옵션을 지정하십시오.

`--template, -t PATH`  <a name="ref-sam-cli-local-invoke-options-template"></a>
 AWS SAM 템플릿 파일입니다.  
이 옵션은 `--hook-name`과 호환되지 않습니다.  
이 옵션을 지정하면는 템플릿과 템플릿이 가리키는 로컬 리소스만 AWS SAM 로드합니다.

`--tenant-id TEXT`  <a name="ref-sam-cli-local-invoke-options-tenancyconfig"></a>
다중 테넌트 Lambda 함수의 테넌트 ID입니다. 서로 다른 테넌트 간의 컴퓨팅 격리를 보장하는 데 사용됩니다. 테넌트 격리 모드로 구성된 함수를 호출할 때 필요합니다.

`--terraform-plan-file`  <a name="ref-sam-cli-local-invoke-options-terraform-plan-file"></a>
Terraform AWS SAM를 CLI와 사용할 때 로컬 Terraform Cloud 계획 파일의 상대적 또는 절대적 경로입니다. 이 옵션을 사용하려면 `--hook-name`을 `terraform`로 설정해야 합니다.

## 예제
<a name="sam-cli-command-reference-sam-local-invoke-examples"></a>

다음 예제에서는 `s3.json` 이벤트를 통해 로컬에서 Lambda 함수를 간접 호출하여 로컬 테스트를 위해 생성된 이벤트를 사용합니다.

```
$ sam local invoke --event events/s3.json S3JsonLoggerFunction
```

다음 예시는 Python 3.11 런타임을 사용하여 ` HelloWorldFunction` 함수를 테스트합니다.

```
$ sam local invoke --runtime python3.11 HelloWorldFunction
```

다음 예제에서는 내구성 ` HelloWorldFunction` 있는 실행 이름으로 함수를 테스트합니다.

```
$ sam local invoke HelloWorldFunction --durable-execution-name my-execution
```