

새로운 *CloudFormation 템플릿 참조 안내서*입니다. 북마크와 링크를 업데이트하세요. CloudFormation을 시작하는 데 도움이 필요한 경우 [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)를 참조하세요.

# `Fn::ForEach`
<a name="intrinsic-function-reference-foreach"></a>

`Fn::ForEach` 내장 함수는 컬렉션과 조각을 가져와서 컬렉션의 항목을 제공된 조각의 식별자에 적용합니다. `Fn::ForEach`는 `Fn::ForEach`를 비롯한 다른 내장 함수를 포함할 수 있으며, `Conditions`, `Outputs`, `Resources`(리소스 속성 포함) 섹션 내에서 사용될 수 있습니다. `AWSTemplateFormatVersion`, `Description`, `Metadata`, `Transform`, `Parameters`, `Mappings`, `Rules` 또는 `Hooks` 섹션에서는 사용할 수 없습니다.

템플릿에서 `Fn::ForEach` 내장 함수를 사용하는 경우 [`AWS::LanguageExtensions` 변환](transform-aws-languageextensions.md)도 사용해야 합니다.

`Fn::ForEach` 내장 함수를 사용해도 결과 템플릿에 적용되는 할당량은 변경되지 않습니다. 할당량에는 템플릿의 최대 크기와 템플릿의 최대 리소스 수가 포함됩니다. 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [CloudFormation 할당량 이해](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) 섹션을 참조하세요.

## 선언
<a name="intrinsic-function-reference-foreach-declaration"></a>

### JSON
<a name="intrinsic-function-reference-foreach-declaration.json"></a>

```
"Fn::ForEach::LoopLogicalName": [
  "Identifier",
  ["Value1","Value2"], // Collection
  {"OutputKey": {OutputValue}}
]
```

### YAML
<a name="intrinsic-function-reference-foreach-declaration.yaml"></a>

```
'Fn::ForEach::LoopLogicalName':
    - Identifier
    - - Value1 # Collection
      - Value2
    - 'OutputKey':
        OutputValue
```

## 파라미터
<a name="intrinsic-function-reference-foreach-parameters"></a>

*루프 논리명*  
루프의 논리적 ID입니다. 이름은 템플릿 내에서 고유해야 하며 템플릿의 `Resources` 섹션에 있는 논리적 ID 값과 충돌해서는 안 됩니다. 이 이름은 변환된 출력에 없습니다. CloudFormation 템플릿 자체 내에서 내부 참조에 사용됩니다.

*식별자*  
`OutputKey` 및 `OutputValue` 파라미터에서 대체되는 자리 표시자의 식별자입니다. `OutputKey` 및 `OutputValue` 파라미터에서 `${Identifier}` 또는 `&{Identifier}`의 모든 인스턴스는 `Collection` 파라미터의 값으로 대체됩니다.

*수집*  
반복할 값 컬렉션입니다. 이 파라미터의 배열일 수도 있고 [`Ref`](intrinsic-function-reference-ref.md)\$1`CommaDelimitedList`일 수도 있습니다. `&{Identifier}`를 사용하는 경우 `Collection`에 영숫자가 아닌 문자가 전달될 수 있습니다.

*출력 키*  
변환된 템플릿의 키입니다. `${Identifier}` 또는 `&{Identifier}`는 `OutputKey` 파라미터에 포함되어야 합니다. 예를 들어 `Fn::ForEach`가 템플릿의 `Resources` 섹션에서 사용되는 경우 각 리소스의 논리적 ID입니다.  
`&{}` 구문을 사용하면 `OutputKey` 파라미터에서 사용할 `Collection`에 영숫자가 아닌 문자를 사용할 수 있습니다. 예제는 [`Fn::ForEach`의 `Collection` 내에서 영숫자가 아닌 문자 전달](intrinsic-function-reference-foreach-example-resource.md#intrinsic-function-reference-foreach-example-non-alphanumeric)의 내용을 참조하세요.

*출력 값입니다.*  
`Collection` 파라미터의 각 항목에 대해 변환된 템플릿에 복제되는 값입니다. 예를 들어 `Fn::ForEach`가 템플릿의 `Resources` 섹션에서 사용되는 경우 각 리소스를 구성하기 위해 반복되는 템플릿 조각입니다.

## 반환 값
<a name="intrinsic-function-reference-foreach-return-value"></a>

컬렉션의 각 항목에 대해 한 번씩 반복되는 개체 조각이 포함된 확장 개체이며, 조각의 식별자는 컬렉션의 항목으로 대체됩니다.

## 지원되는 함수
<a name="intrinsic-function-reference-foreach-nested-functions"></a>

`Fn::ForEach` 내에서 다음과 같은 함수를 사용할 수 있습니다.
+ 조건 함수:
  + [`Fn::And`](intrinsic-function-reference-conditions.md#intrinsic-function-reference-conditions-and)
  + [`Fn::Equals`](intrinsic-function-reference-conditions.md#intrinsic-function-reference-conditions-equals)
  + [`Fn::If`](intrinsic-function-reference-conditions.md#intrinsic-function-reference-conditions-if)
  + [`Fn::Not`](intrinsic-function-reference-conditions.md#intrinsic-function-reference-conditions-not)
  + [`Fn::Or`](intrinsic-function-reference-conditions.md#intrinsic-function-reference-conditions-or)
+ [`Fn::Base64`](intrinsic-function-reference-base64.md)
+ [`Fn::FindInMap`](intrinsic-function-reference-findinmap.md)
+ [`Fn::GetAtt`](intrinsic-function-reference-getatt.md)
+ [`Fn::GetAZs`](intrinsic-function-reference-getavailabilityzones.md)
+ [`Fn::ImportValue`](intrinsic-function-reference-importvalue.md)
+ [`Fn::Join`](intrinsic-function-reference-join.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::Transform`](intrinsic-function-reference-transform.md)
+ [`Fn::Select`](intrinsic-function-reference-select.md)
+ [`Fn::Sub`](intrinsic-function-reference-sub.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)
+ [`Ref`](intrinsic-function-reference-ref.md)

## 예제
<a name="intrinsic-function-reference-foreach-example-pointer"></a>

[예시](intrinsic-function-reference-foreach-examples.md)에서 `Conditions`, `Outputs` 및 `Resources` 섹션의 예를 찾을 수 있습니다.