sam local invoke - AWS Serverless Application Model

sam local invoke

이 페이지는 AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI) sam local invoke 하위 명령에 대한 참조 정보를 제공합니다.

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

사용법

$ sam local invoke <arguments> <options>
참고

귀하의 AWS SAM 템플릿에 함수를 두 개 이상 정의한 경우 간접 호출하려는 함수 논리 ID를 제공하십시오.

인수

리소스 ID

간접 호출을 위한 Lambda 함수의 ID입니다.

이 인수는 선택 사항입니다. 애플리케이션에 단일 Lambda 함수가 포함된 경우 AWS SAM CLI는 해당 함수를 간접 호출합니다. 애플리케이션에 여러 함수가 포함된 경우 간접 호출할 함수의 ID를 제공하십시오.

유효한 값: 리소스의 논리적 ID 또는 리소스 ARN입니다.

옵션

--add-host LIST

호스트 이름과 IP 주소 매핑을 Docker 컨테이너의 호스트 파일에 전달합니다. 이 파라미터는 여러 번 전달할 수 있습니다.

예시: --add-host example.com:127.0.0.1

--beta-features | --no-beta-features

베타 기능을 허용 또는 거부합니다.

--config-env TEXT

사용할 구성 파일의 기본 매개변수 값을 지정하는 환경 이름입니다. 기본값은 “기본값”입니다. 구성 파일에 대한 자세한 내용은 AWS SAMCLI구성 파일 섹션을 참조하세요.

--config-file PATH

사용할 기본 매개변수 값이 들어 있는 구성 파일의 경로 및 파일 이름입니다. 기본값은 프로젝트 디렉터리의 루트에 있는 “samconfig.toml“입니다. 구성 파일에 대한 자세한 내용은 AWS SAMCLI구성 파일 섹션을 참조하세요.

--container-env-vars

(선택 사항) 로컬에서 디버깅할 때 Lambda 함수 이미지 컨테이너에 환경 변수를 전달하십시오.

--container-host TEXT

로컬로 에뮬레이션된 Lambda 컨테이너의 호스트입니다. 기본값은 localhost입니다. macOS의 Docker 컨테이너에서 AWS SAM CLI를 실행하려는 경우 host.docker.internal을 지정할 수 있습니다. AWS SAM CLI가 아닌 다른 호스트에서 컨테이너를 실행하려는 경우 원격 호스트의 IP 주소를 지정할 수 있습니다.

--container-host-interface TEXT

컨테이너 포트가 바인딩해야 하는 호스트 네트워크 인터페이스의 IP 주소입니다. 기본값은 127.0.0.1입니다. 모든 인터페이스에 바인딩하는 데 0.0.0.0을 사용합니다.

--debug

디버그 로깅을 켜서 AWS SAM CLI가 생성한 디버그 메시지를 인쇄하고 타임스탬프를 표시합니다.

--debug-args TEXT

디버거에 전달할 추가 인수입니다.

--debug-port, -d TEXT

지정되면 Lambda 함수 컨테이너를 디버그 모드에서 시작하고 이 포트를 로컬 호스트에 노출합니다.

--debugger-path TEXT

Lambda 컨테이너에 마운트된 디버거의 호스트 경로입니다.

--docker-network TEXT

Lambda Docker 컨테이너가 연결해야 하는 기존 Docker 네트워크의 이름 또는 ID와 기본 브리지 네트워크입니다. 이것이 지정되지 않으면 Lambda 컨테이너는 기본 브리지 Docker 네트워크에만 연결됩니다.

--docker-volume-basedir, -v TEXT

AWS SAM 파일이 있는 기본 디렉터리의 위치입니다. Docker가 원격 기기에서 실행 중인 경우 AWS SAM 파일이 있는 경로를 Docker 기기에 마운트하고 이 값을 원격 기기에 맞게 수정해야 합니다.

--env-vars, -n PATH

Lambda 함수의 환경 변수의 값을 포함하는 JSON 파일입니다. 환경 변수 파일에 대한 자세한 내용은 환경 변수 파일 섹션을 참조하세요.

--event, -e PATH

간접 호출 시 Lambda 함수로 전달되는 이벤트 데이터를 포함하는 JSON 파일입니다. 이 옵션을 지정하지 않으면 이벤트가 가정되지 않습니다. stdin에서 JSON을 입력하려면 '-' 값을 전달해야 합니다. 다양한 AWS 서비스의 이벤트 메시지 형식에 대한 자세한 내용은 개발자 가이드AWS Lambda다른 서비스를 사용하는 작업을 참조하세요.

--force-image-build

레이어가 있는 Lambda 함수를 간접 호출하는 데 사용된 이미지를 AWS SAM CLI가 다시 구축해야 하는지를 지정합니다.

--help

이 메시지를 표시한 후 종료합니다.

--hook-name TEXT

AWS SAM CLI 기능을 확장하는 데 사용되는 후크의 이름입니다.

허용되는 값: terraform.

--invoke-image TEXT

로컬 함수 간접 호출에 사용하려는 컨테이너 이미지의 URI입니다. 기본적으로, AWS SAM은 Amazon ECR 퍼블릭으로부터 컨테이너 이미지를 가져옵니다(AWS SAM의 이미지 리포지토리에 나열됨). 다른 위치에서 이미지를 가져오려면 이 옵션을 사용합니다.

예를 들어 sam local invoke MyFunction --invoke-image amazon/aws-sam-cli-emulation-image-python3.8입니다.

--layer-cache-basedir DIRECTORY

템플릿에서 사용하는 레이어가 다운로드되는 기본 디렉토리의 위치를 지정합니다.

--log-file, -l TEXT

런타임 로그를 전송할 로그 파일입니다.

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

--no-event

빈 이벤트와 함께 함수를 간접 호출합니다.

--no-memory-limit

AWS SAM 템플릿에서 메모리가 구성된 경우에도 로컬 간접 호출 중 컨테이너의 메모리 제한을 제거합니다.

--parameter-overrides

키-값 페어로 인코딩된 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

AWS 보안 인증 정보를 가져오는 보안 인증 파일의 특정 프로필입니다.

--region TEXT

배포할 AWS 지역입니다. 예를 들어 us-east-1입니다.

--runtime TEXT

지정된 런타임을 사용하여 Lambda 함수를 로컬에서 간접 호출합니다. 이는 template.yml 파일에 정의된 런타임을 재정의합니다. 또한 원래 함수 구성을 수정하지 않고 다른 런타임으로 Lambda 함수를 테스트할 수 있습니다.

--save-params

명령줄에서 AWS SAM 구성 파일에 제공한 매개변수를 저장합니다.

--shutdown

종료 동작의 확장 처리를 테스트하기 위하여 간접 호출 완료 이후라도 종료 이벤트를 에뮬레이션합니다.

--skip-prepare-infra

인프라를 변경하지 않은 경우 준비 단계를 건너뜁니다. --hook-name 옵션과 함께 사용합니다.

--skip-pull-image

기본 사항으로서, AWS SAM CLI 는 Lambda의 최신 원격 런타임 환경을 확인하고 로컬 이미지를 자동으로 업데이트하여 동기화를 유지합니다.

Lambda 런타임 환경의 최신 Docker 이미지를 가져오지 않으려면 이 옵션을 지정하십시오.

--template, -t PATH

AWS SAM 템플릿 파일입니다.

이 옵션은 --hook-name과 호환되지 않습니다.

참고

이 옵션을 지정하는 경우 AWS SAM은 템플릿과 템플릿이 가리키는 로컬 리소스만 로드합니다.

--terraform-plan-file

Terraform AWS SAM를 CLI와 사용할 때 로컬 Terraform Cloud 계획 파일의 상대적 또는 절대적 경로입니다. 이 옵션을 사용하려면 --hook-nameterraform로 설정해야 합니다.

예시

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

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

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

$ sam local invoke --runtime python3.11 HelloWorldFunction