기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용 AWS SAM CLI with Terraform 로컬 디버깅 및 테스트용
이 주제에서는 지원되는 AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI) 명령을 사용하여 Terraform 프로젝트 및 Terraform Cloud.
피드백을 제공하고 기능 요청을 제출하려면 GitHub 문제
주제
를 사용한 로컬 테스트 sam local invoke
참고
를 사용하려면 AWS SAM CLI 로컬에서 테스트하려면 Docker를 설치하고 구성해야 합니다. 지침은 와 함께 사용할 Docker 설치 AWS SAM CLI 단원을 참조하십시오.
다음은 이벤트를 전달하여 로컬에서 Lambda 함수를 테스트하는 예입니다.
$
sam local invoke --hook-name terraform
hello_world_function
-eevents/event.json
-
이 함수 사용에 대한 자세한 내용은 sam local invoke를 사용한 테스트 소개 섹션을 참조하세요.
를 사용한 로컬 테스트 sam local start-api
sam local start-api
와 함께 사용하려면 Terraform에서 다음을 실행합니다.
$
sam local start-api --hook-name terraform
다음은 예제입니다.
$
sam local start-api --hook-name terraform
Running Prepare Hook to prepare the current application Executing prepare hook of hook "terraform" Initializing Terraform application ... Creating terraform plan and getting JSON output .... Generating metadata file Unresolvable attributes discovered in project, run terraform apply to resolve them. Finished generating metadata file. Storing in... Prepare hook completed and metadata file generated at: ... Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] Mounting None at http://127.0.0.1:3000/hello [POST] You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart SAM CLI if you update your AWS SAM template 2023-06-26 13:21:20 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)
sam local start-api를 사용한 테스트 소개 명령에 대한 자세한 내용은 섹션을 참조하세요.
Lambda 권한 부여자를 사용하는 Lambda 함수
Lambda 권한 부여자를 사용하도록 구성된 Lambda 함수의 경우 AWS SAM CLI 는 Lambda 함수 엔드포인트를 호출하기 전에 Lambda 권한 부여자를 자동으로 호출합니다.
-
에서이 기능에 대해 자세히 알아보려면 AWS SAM CLI, 단원을 참조하십시오Lambda 권한 부여자를 사용하는 Lambda 함수.
-
에서 Lambda 권한 부여자 사용에 대한 자세한 내용은 Terraform, 참조 Resource: aws_api_gateway_authorizer
의 Terraform 레지스트리.
를 사용한 로컬 테스트 sam local start-lambda
다음은 AWS Command Line Interface ()를 사용하여 로컬에서 Lambda 함수를 테스트하는 예제입니다AWS CLI.
-
사용 AWS SAM CLI 로컬 테스트 환경을 생성하려면:
$
sam local start-lambda --hook-name terraform
hello_world_function
-
를 사용하여 함수 AWS CLI 를 로컬에서 호출합니다.
$
aws lambda invoke --function-name
hello_world_function
--endpoint-urlhttp://127.0.0.1:3001/ response.json --cli-binary-format raw-in-base64-out --payload file://events/event.json
를 사용한 테스트 소개 sam local start-lambda 명령에 대한 자세한 내용은 섹션을 참조하세요.
Terraform 제한 사항
다음은를 사용할 때의 제한 사항입니다. AWS SAM CLI with Terraform:
-
Lambda 함수는 여러 계층에 연결되어 있습니다.
-
Terraform 리소스 간의 링크를 정의하는 로컬 변수입니다.
-
아직 생성되지 않은 Lambda 함수를 참조합니다. 여기에는 REST API 리소스의 본문 속성에 정의된 함수가 포함됩니다.
이러한 제한을 피하려면 새 리소스가 추가될 때 terraform apply
를 실행할 수 있습니다.