

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

# AWS SAM 템플릿 구조
<a name="sam-specification-template-anatomy"></a>

 AWS SAM 템플릿 파일은 CloudFormation 사용 *AWS CloudFormation 설명서*의 템플릿 [구조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)에 설명된 템플릿 파일의 형식을 따릅니다. AWS SAM 템플릿 파일과 CloudFormation 템플릿 파일의 주요 차이점은 다음과 같습니다.
+ **변환 선언.** AWS SAM 템플릿 파일에는 `Transform: AWS::Serverless-2016-10-31` 선언이 필요합니다. 이 선언은 CloudFormation 템플릿 파일을 템플릿 파일로 식별합니다 AWS SAM . 변환에 대한 자세한 내용은 *AWS CloudFormation 사용자 가이드*의 [변환](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html)을 참조하세요.
+ **글로벌 섹션.** `Globals` 섹션은 고유합니다 AWS SAM. 이것은 귀하의 모든 서버리스 함수 및 API에 공통적인 속성을 정의합니다. 모든 `AWS::Serverless::Function`, `AWS::Serverless::Api`, `AWS::Serverless::CapacityProvider`, `AWS::Serverless::HttpApi``AWS::Serverless::SimpleTable`, 및 `AWS::Serverless::StateMachine` 리소스는 `Globals` 섹션에 정의된 속성을 상속합니다. 이 섹션에 대한 자세한 내용을 알아보려면 [AWS SAM 템플릿의 글로벌 섹션](sam-specification-template-anatomy-globals.md) 섹션을 참조하세요.
+ **리소스 섹션** AWS SAM 템플릿에서 `Resources` 섹션에는 CloudFormation 리소스와 AWS SAM 리소스의 조합이 포함될 수 있습니다. CloudFormation 리소스에 대한 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [AWS 리소스 및 속성 유형 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)를 참조하세요. AWS SAM 리소스에 대한 자세한 내용은 섹션을 참조하세요[AWS SAM 리소스 및 속성](sam-specification-resources-and-properties.md).

 AWS SAM 템플릿 파일의 다른 모든 섹션은 동일한 이름의 CloudFormation 템플릿 파일 섹션에 해당합니다.

## YAML
<a name="template-anatomy-outline.yaml"></a>

다음 예제에서는 YAML 형식의 템플릿 조각을 보여줍니다.

```
Transform: AWS::Serverless-2016-10-31

Globals:
  set of globals

Description:
  String

Metadata:
  template metadata

Parameters:
  set of parameters

Mappings:
  set of mappings

Conditions:
  set of conditions

Resources:
  set of resources

Outputs:
  set of outputs
```

## 템플릿 섹션
<a name="template-anatomy-sections"></a>

AWS SAM 템플릿에는 여러 주요 섹션이 포함될 수 있습니다. 오직 `Transform` 및 `Resources` 섹션만 필요합니다.

템플릿 섹션들은 어떤 순서로든 포함시킬 수 있습니다. 그러나 언어 확장을 사용하는 경우 다음 예제와 같이 서버리스 변환 이전**(즉, `AWS::Serverless-2016-10-31` 이전)에 `AWS::LanguageExtensions`를 추가해야 합니다.

```
Transform:
  - AWS::LanguageExtensions
  - AWS::Serverless-2016-10-31
```

템플릿을 작성할 때 다음 목록의 논리적 순서를 사용하는 것이 유용할 수 있습니다. 이는 한 섹션의 값이 이전 섹션의 값을 참조할 수 있기 때문입니다.

**[변환(필수 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html)**  
 AWS SAM 템플릿의 경우이 섹션을 값과 함께 포함해야 합니다`AWS::Serverless-2016-10-31`.  
추가 변환은 선택 사항입니다. 변환에 대한 자세한 내용은 *AWS CloudFormation 사용자 가이드*의 [변환](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html)을 참조하세요.

**[글로벌(선택 사항)](sam-specification-template-anatomy-globals.md)**  
모든 서버리스 함수, API 및 단순 테이블에 공통되는 속성. 모든 `AWS::Serverless::Function`, `AWS::Serverless::Api`, `AWS::Serverless::CapacityProvider`, `AWS::Serverless::HttpApi``AWS::Serverless::SimpleTable`, 및 `AWS::Serverless::StateMachine` 리소스는 `Globals` 섹션에 정의된 속성을 상속합니다.  
이 섹션은에 고유합니다 AWS SAM. CloudFormation 템플릿에는 해당 섹션이 없습니다.

**[설명(선택 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-description-structure.html)**  
템플릿을 설명하는 텍스트 문자열입니다.  
이 섹션은 CloudFormation 템플릿의 `Description` 섹션과 직접 일치합니다.

**[Metadata(선택 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html)**  
템플릿에 대한 추가 정보를 제공하는 객체입니다.  
이 섹션은 CloudFormation 템플릿의 `Metadata` 섹션과 직접 일치합니다.

**[파라미터(선택 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)**  
(스택을 생성하거나 업데이트할 때) 실행 시간에 템플릿에 전달하는 값입니다. 템플릿의 `Resources` 및 `Outputs` 섹션에서 파라미터를 참조할 수 있습니다. `Parameters` 섹션에 선언된 객체는 **sam deploy --guided** 명령으로 하여금 사용자에게 추가 프롬프트를 표시하게 합니다.  
`sam deploy`명령의 `--parameter-overrides` 파라미터를 사용하여 전달된 값과 구성 파일의 항목이 AWS SAM 템플릿 파일의 항목보다 우선합니다. `sam deploy` 명령에 대한 자세한 내용은 AWS SAMCLI 명령 참조 내 [sam deploy](sam-cli-command-reference-sam-deploy.md) 섹션을 참조하세요. 구성 파일에 대한 자세한 내용은 [AWS SAMCLI구성 파일](serverless-sam-cli-config.md) 섹션을 참조하세요.

**[Mappings(선택 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)**  
조건부 파라미터 값을 지정하는 데 사용할 수 있는 키와 관련 값의 매핑으로, 조회 테이블과 비슷합니다. `Resources` 및 `Outputs` 섹션의 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html) 내장 함수를 사용하여 키를 상응하는 값에 매칭할 수 있습니다.  
이 섹션은 CloudFormation 템플릿의 `Mappings` 섹션과 직접 일치합니다.

**[조건(선택 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html)**  
스택 생성 또는 업데이트 시 특정 리소스 속성에 값이 할당되는지 또는 특정 리소스가 생성되는지 여부를 제어하는 조건입니다. 예를 들어, 스택이 프로덕션용인지 테스트 환경용인지에 따라 달라지는 리소스를 조건부로 생성할 수 있습니다.  
이 섹션은 CloudFormation 템플릿의 `Conditions` 섹션과 직접 일치합니다.

**[리소스(필수 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html)**  
Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 Amazon Simple Storage Service(S3) 버킷 같은 스택 리소스들 및 이들의 속성. 템플릿의 `Resources` 및 `Outputs` 섹션에서 리소스를 참조할 수 있습니다.  
이 섹션은 CloudFormation 템플릿의 `Resources` 섹션과 비슷합니다. AWS SAM 템플릿에서이 섹션에는 AWS SAM 리소스 외에도 CloudFormation 리소스가 포함될 수 있습니다.

**[Outputs(선택 사항)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)**  
귀하가 귀하의 스택의 속성을 볼 때마다 표시되는 값을 설명합니다. 예를 들어 S3 버킷 이름에 대한 출력을 선언한 다음 `aws cloudformation describe-stacks` AWS Command Line Interface (AWS CLI) 명령을 호출하여 이름을 볼 수 있습니다.  
이 섹션은 CloudFormation 템플릿의 `Outputs` 섹션들에 직접 관련됩니다.

## 다음 단계
<a name="template-anatomy-next-steps"></a>

 AWS SAM 템플릿 파일이 포함된 샘플 서버리스 애플리케이션을 다운로드하고 배포하려면 섹션을 참조[시작하기 AWS SAM](serverless-getting-started.md)하고의 지침을 따르세요[자습서:를 사용하여 Hello World 애플리케이션 배포 AWS SAM](serverless-getting-started-hello-world.md).