

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

# 서버리스 애플리케이션 디버깅을 위한 구성 옵션
<a name="serverless-apps-run-debug-config-ref"></a>

디버그 구성을 수정하기 위해 `launch.json` 파일을 열고 VS Code [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense) 기능을 사용하여 유효한 속성을 보고 자동으로 완성할 수 있습니다. 편집기에서**Ctrl**\+**Spacebar**를 눌러 IntelliSense를 실행합니다.

![VS Code의 IntelliSense를 사용하여 유효한 디버그 속성을 찾아 완료하세요.](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/images/Intellisense_autocomplete.gif)


IntelliSense를 사용하면 Lambda 함수를 직접 호출하거나 AWS SAM 템플릿을 사용하여 속성을 찾고 정의할 수 있습니다. (함수 실행 방법), `"lambda"` ( AWS SAM CLI가 애플리케이션을 빌드하는 `"sam"` 방법) 및 `"aws"` ( AWS 연결 정보가 제공되는 방법)에 대한 속성을 정의할 수도 있습니다.


**AWS SAM Lambda 핸들러 직접 호출/템플릿 기반 Lambda 호출**  

|  속성 | 설명 | 
| --- | --- | 
| `type` | 시작 구성을 관리하는 확장 프로그램을 지정합니다. AWS SAM CLI를 사용하여 로컬`aws-sam`에서 빌드하고 디버깅하려면 항상를 로 설정합니다. | 
| `name` | **Debug launch configuration** 목록에 표시할 알아보기 쉬운 이름을 정합니다. | 
| `request` | 지정된 확장 프로그램(`aws-sam`)으로 실행할 구성의 유형을 정합니다. 항상 Lambda 함수를 시작하도록 `direct-invoke`로 설정합니다. | 
| `invokeTarget` | 리소스를 호출하기 위한 진입점을 지정합니다.<br />Lambda 함수를 직접 호출하려면 다음 `invokeTarget` 필드의 값을 설정합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html)<br /> AWS SAM 템플릿을 사용하여 Lambda 리소스를 호출하려면 다음 `invokeTarget` 필드의 값을 설정합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html) | 


**Lambda(`"lambda"`) 속성**  

|  속성 | 설명 | 
| --- | --- | 
| `environmentVariables` | 연산 파라미터를 Lambda 함수에 전달합니다. 예를 들어, Amazon S3 버킷에 기록하는 경우 기록하고 있는 버킷 이름을 하드 코딩하는 대신 환경 변수로 구성합니다. 서버리스 애플리케이션의 환경 변수를 지정할 때는 AWS SAM 템플릿(`template.yaml`)과 `launch.json` 파일 모두에 구성을 추가해야 합니다. <br /> AWS SAM 템플릿의 환경 변수 형식 지정 예: <pre>Resources:<br /> HelloWorldFunction:<br /> Type: AWS::Serverless::Function<br /> Properties:<br />   CodeUri: hello-world/<br />   Handler: app.lambdaHandlerN10<br />   Runtime: nodejs10.x<br />   Environment:<br />     Variables:<br />       SAMPLE1: Default Sample 1 Value</pre> <br />`launch.json` 파일의 환경 변수 형식 지정 예: <pre>"environmentVariables": {<br />    "SAMPLE1": "My sample 1 value"<br /> }</pre>  | 
| `payload` | Lambda 함수에 입력으로 제공할 이벤트 페이로드에 두 가지 옵션이 있습니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html) | 
| `memoryMB` | 호출된 Lambda 함수의 실행하기 위한 메모리의 용량(메가바이트)을 지정합니다. | 
| `runtime` | Lambda 함수가 사용하는 런타임을 지정합니다. 자세한 내용은 [AWS Lambda 런타임](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)을 참조하세요. | 
| `timeoutSec` | 디버그 세션이 시간 초과 전까지 허용되는 시간(초)을 설정합니다. | 
| `pathMappings` | 컨테이너에서 실행되는 위치와 관련하여 로컬 코드의 위치를 지정합니다.<br />기본적으로 Toolkit for VS Code는 `localRoot`를 로컬 작업 폴더에 있는 Lambda 함수의 코드 루트로 설정하고 `remoteRoot`를 Lambda에서 실행되는 코드의 기본 작업 디렉토리인 `/var/task`로 설정합니다. Dockerfile에서 또는 CloudFormation 템플릿 파일의 `WorkingDirectory` 파라미터를 사용하여 작업 디렉터리를 변경하는 경우 디버거가 로컬로 설정된 중단점을 Lambda 컨테이너에서 실행되는 코드에 성공적으로 매핑할 수 있도록 하나 이상의 `pathMapping` 항목을 지정해야 합니다.<br />`launch.json` 파일에서 `pathMappings`의 형식 지정하기 예시:<pre>"pathMappings": [<br />    {<br />        "localRoot": "{{${workspaceFolder}/sam-app/HelloWorldFunction}}",<br />        "remoteRoot": "{{/var/task}}"<br />    }<br />]</pre><br />경고[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html) | 

Toolkit for VS Code는 AWS SAM CLI를 사용하여 서버리스 애플리케이션을 로컬로 빌드하고 디버깅합니다. `launch.json` 파일에서 구성의 속성을 사용하여 AWS SAM CLI 명령의 동작을 구성할 수 `"sam"` 있습니다.


**AWS SAM CLI(`"sam"`) 속성**  

| 속성 |  설명 |  기본값  | 
| --- | --- | --- | 
| `buildArguments` | `sam build` 명령으로 Lambda 소스 코드를 빌드하는 방법을 알아보세요. 빌드 옵션을 보려면AWS Serverless Application Model 개발자 가이드에서 [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html)를 참조하세요. | 빈 문자열 | 
| `containerBuild` | Lambda와 유사한 Docker 컨테이너 내부에 함수에 빌드할지 여부를 나타냅니다. | `false` | 
| `dockerNetwork` | Lambda Docker 컨테이너에 연결되어 있는 기존 Docker 네트워크의 이름 또는 ID와 더불어 기본 브리지 네트워크를 지정합니다. 지정하지 않으면 Lambda 컨테이너는 기본 브리지 Docker 네트워크에만 연결됩니다. | 빈 문자열 | 
| `localArguments` | 추가 로컬 호출 인수 지정. | 빈 문자열 | 
| `skipNewImageCheck` | 명령어로 Lambda 런타임의 최신 Docker 이미지를 가져오는 단계를 건너뛸지 여부를 지정합니다. | `false` | 
| `template` | 파라미터를 사용하여 AWS SAM 템플릿을 사용자 지정하여 고객 값을 입력합니다. 자세한 내용은AWS CloudFormation 사용 설명서의 [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)를 참조하세요. | `"parameters":{}` | 


**AWS 연결(`"aws"`) 속성**  

| 속성 | 설명 | 기본값  | 
| --- | --- | --- | 
| `credentials` | 자격 증명을 가져올 자격 증명 파일에서 특정 프로필(예: `profile:default`)을 선택합니다 AWS . | 기존 공유 구성 파일 또는 공유 AWS 자격 증명 파일이 Toolkit for VS Code에 제공하는 자격 증명입니다. [AWSAWS](setup-credentials.md)  | 
| `region` | 서비스의 AWS 리전을 설정합니다(예: us-east-1). | 활성 자격 증명 프로필과 연결된 기본 AWS 리전입니다. | 

## 예: 템플릿 시작 구성
<a name="example-template"></a>

다음은 AWS SAM 템플릿 대상에 대한 시작 구성 파일의 예입니다.

```
{
    "configurations": [
        {
            "type": "aws-sam",
            "request": "direct-invoke",
            "name": "my-example:HelloWorldFunction",
            "invokeTarget": {
                "target": "template",
                "templatePath": "template.yaml",
                "logicalId": "HelloWorldFunction"
            },
            "lambda": {
                "payload": {},
                "environmentVariables": {}
            }
        }
    ]
}
```

## Code 시작 파일 구성 예
<a name="example-code"></a>

다음은 Lambda 함수 타겟의 시작 구성 파일 예시입니다.

```
{
    "configurations": [
        {
            "type": "aws-sam",
            "request": "direct-invoke",
            "name": "my-example:app.lambda_handler (python3.7)",
            "invokeTarget": {
                "target": "code",
                "projectRoot": "hello_world",
                "lambdaHandler": "app.lambda_handler"
            },
            "lambda": {
                "runtime": "python3.7",
                "payload": {},
                "environmentVariables": {}
            }
        }
    ]
}
```