

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

# 기타 CloudFormation 템플릿 키
<a name="ebextensions-otherkeys"></a>

`Resources`, `files`및 CloudFormation 와 같은의 구성 파일 키를 이미 도입했습니다`packages`. Elastic Beanstalk는 환경을 지원하는 CloudFormation 템플릿에 구성 파일의 내용을 추가하므로 다른 CloudFormation 섹션을 사용하여 구성 파일에서 고급 작업을 수행할 수 있습니다.

**Topics**
+ [파라미터](#ebextensions-otherkeys-parameters)
+ [출력](#ebextensions-otherkeys-outputs)
+ [매핑](#ebextensions-otherkeys-mappings)

## 파라미터
<a name="ebextensions-otherkeys-parameters"></a>

파라미터는 구성 파일의 다른 위치에서 사용하는 값을 정의하는 데 사용할 수 있는 Elastic Beanstalk의 고유한 대체 [사용자 지정 옵션](configuration-options-custom.md)입니다. 사용자 지정 옵션과 마찬가지로, 파라미터를 사용하면 사용자가 구성할 수 있는 값을 한 곳에서 수집할 수 있습니다. 사용자 지정 옵션과 달리 Elastic Beanstalk의 API를 사용하여 파라미터 값을 설정할 수 없으며 템플릿에서 정의할 수 있는 파라미터 수는에 의해 제한됩니다 CloudFormation.

파라미터를 사용할 수 있는 한 가지 이유는 구성 파일을 CloudFormation 템플릿으로 두 배로 만들기 때문입니다. 사용자 지정 옵션 대신 파라미터를 사용하는 경우 구성 파일을 사용하여에서 자체 스택 CloudFormation 과 동일한 리소스를 생성할 수 있습니다. 예를 들어 테스트를 위해 환경에 Amazon EFS 파일 시스템을 추가하는 구성 파일이 있고, 동일한 파일을 사용해 환경의 프로덕션용 수명 주기에 연결되지 않은 독립적 파일 시스템을 생성할 수 있습니다.

다음 예에서는 파라미터를 사용해 구성 파일 맨 위에서 사용자가 구성할 수 있는 값을 수집하는 방법을 보여 줍니다.

**Example [Loadbalancer-accesslogs-existingbucket.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-existingbucket.config) - 파라미터**  

```
Parameters:
  bucket:
    Type: String
    Description: "Name of the Amazon S3 bucket in which to store load balancer logs"
    Default: "amzn-s3-demo-bucket"
  bucketprefix:
    Type: String
    Description: "Optional prefix. Can't start or end with a /, or contain the word AWSLogs"
    Default: ""
```

## 출력
<a name="ebextensions-otherkeys-outputs"></a>

`Outputs` 블록을 사용하여 생성된 리소스에 대한 정보를 CloudFormation으로 내보낼 수 있습니다. 그런 다음 `Fn::ImportValue` 함수를 사용하여 값을 Elastic Beanstalk 외부의 CloudFormation 템플릿으로 가져올 수 있습니다.

다음 예제에서는 Amazon SNS 주제를 생성하고 이름을 사용하여 ARN을 CloudFormation 로 내보냅니다`NotificationTopicArn`.

**Example [sns-topic.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/sns-topic.config)**  

```
Resources:
  NotificationTopic:
    Type: AWS::SNS::Topic

Outputs:
  NotificationTopicArn:
    Description: Notification topic ARN
    Value: { "Ref" : "NotificationTopic" }
    Export:
      Name: NotificationTopicArn
```

다른 환경의 구성 파일 또는 Elastic Beanstalk 외부의 CloudFormation 템플릿에서 `Fn::ImportValue` 함수를 사용하여 내보낸 ARN을 가져올 수 있습니다. 이 예에서는 내보낸 값을 환경 속성 `TOPIC_ARN`에 할당합니다.

**Example env.config**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    TOPIC_ARN: '`{ "Fn::ImportValue" : "NotificationTopicArn" }`'
```

## 매핑
<a name="ebextensions-otherkeys-mappings"></a>

매핑을 사용하여 네임스페이스별로 구성된 키 값 페어를 저장할 수 있습니다. 매핑을 사용하면 구성 전체에서 사용하는 값을 구성하거나, 다른 값에 따라 파라미터 값을 변경할 수 있습니다. 예를 들어 다음 구성은 현재 리전을 기준으로 계정 ID 파라미터의 값을 설정합니다.

**Example [Loadbalancer-accesslogs-newbucket.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-newbucket.config) - 매핑**  

```
Mappings: 
  Region2ELBAccountId: 
    us-east-1: 
      AccountId: "111122223333"
    us-west-2: 
      AccountId: "444455556666"
    us-west-1: 
      AccountId: "123456789012"
    eu-west-1: 
      AccountId: "777788889999"
...
            Principal: 
              AWS: 
                ? "Fn::FindInMap"
                : 
                  - Region2ELBAccountId
                  - 
                    Ref: "AWS::Region"
                  - AccountId
```