

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

# Step Functions에서 Inline Map 상태를 사용하여 작업 반복
<a name="tutorial-map-inline"></a>

이 자습서는 인라인 모드에서 `Map` 상태를 시작하는 데 도움이 됩니다. 워크플로의 *Inline Map 상태*를 사용하여 작업을 반복 수행할 수 있습니다. 인라인 모드에 대한 자세한 내용은 인라인 [Inline 모드의 Map 상태](state-map-inline.md)를 참조하세요.

이 자습서에서는 *Inline Map 상태*를 사용하여 버전 4 범용 고유 식별자(v4 UUID)를 반복 생성합니다. 먼저 Workflow Studio에서 두 가지 [Pass 워크플로 상태](state-pass.md) 상태와 *Inline Map 상태*가 포함된 워크플로를 만듭니다. 그런 다음 `Map` 상태에 대한 입력 JSON 배열을 포함하여 입력과 출력을 구성합니다. `Map` 상태는 입력 배열의 항목마다 생성된 v4 UUID가 포함된 출력 배열을 반환합니다.

## 1단계: 워크플로 프로토타입 만들기
<a name="use-inline-map-create-workflow"></a>

이 단계에서는 Workflow Studio를 사용하여 워크플로의 프로토타입을 만듭니다. Workflow Studio는 Step Functions 콘솔에서 사용할 수 있는 시각적 워크플로 디자이너입니다. **흐름** 탭에서 필요한 상태를 선택하고 Workflow Studio의 끌어서 놓기 기능을 사용하여 워크플로 프로토타입을 만듭니다.

1. [AWS Step Functions 콘솔](https://console.aws.amazon.com/states/home)을 열고 메뉴에서 **상태 머신**을 선택한 다음 **상태 머신 생성**을 선택합니다.

1. **새로 생성**을 선택합니다.

1. 상태 머신의 이름을 지정한 다음 **계속**을 선택하여 Workflow Studio에서 상태 머신을 편집합니다.

1. **흐름** 탭에서 **Pass** 상태를 끌어 **첫 번째 상태를 여기에 놓기** 레이블이 지정된 빈 상태에 놓습니다.

1. **Map** 상태를 끌어 **Pass** 상태 아래에 놓습니다. **Map** 상태 이름을 **Map demo**로 변경합니다.

1. 두 번째 **Pass** 상태를 끌어 **Map demo** 상태 안에 놓습니다.

1. 두 번째 **Pass** 상태 이름을 **Generate UUID**로 변경합니다.

## 2단계: 입력 및 출력 구성
<a name="use-inline-map-configure-io"></a>

이 단계에서는 워크플로 프로토타입의 모든 상태에 대한 입력과 출력을 구성합니다. 먼저 첫 번째 **Pass** 상태를 사용하여 일부 고정 데이터를 워크플로에 삽입합니다. 이 **Pass** 상태는 이 데이터를 **Map demo** 상태에 대한 입력으로 전달합니다. 이 입력 내에서 **Map demo** 상태에서 반복해야 하는 입력 배열이 포함된 노드를 지정합니다. 그런 다음 **Map demo** 상태에서 v4 UUID를 생성하기 위해 반복해야 하는 단계를 정의합니다. 마지막으로 반복마다 반환되도록 출력을 구성합니다.

1. 워크플로 프로토타입에서 첫 번째 **Pass** 상태를 선택합니다. **출력** 탭의 **결과** 아래에 다음을 입력합니다.

   ```
   {
     "foo": "bar",
     "colors": [
       "red",
       "green",
       "blue",
       "yellow",
       "white"
     ]
   }
   ```

1. **Map demo** 상태를 선택하고 **구성** 탭에서 다음을 수행합니다.

   1. **항목 배열에 대한 경로 제공**을 선택합니다.

   1. 다음 [참조 경로](amazon-states-language-paths.md#amazon-states-language-reference-paths)를 지정하여 입력 배열이 포함된 노드를 선택합니다.

      ```
      $.colors
      ```

1. **Generate UUID** 상태를 선택하고 **입력** 탭에서 다음을 수행합니다.

   1. **파라미터로 입력 변환**을 선택합니다.

   1. 다음 JSON 입력을 입력하여 각 입력 배열 항목에 대한 v4 UUID를 생성합니다. `States.UUID` 내장 함수를 사용하여 UUID를 생성합니다.

      ```
      {
        "uuid.$": "States.UUID()"
      }
      ```

1. **Generate UUID** 상태에서 **출력** 탭을 선택하고 다음을 수행합니다.

   1. **OutputPath로 출력 필터링**을 선택합니다.

   1. 다음 참조 경로를 입력하여 출력 배열 항목이 포함된 JSON 노드를 선택합니다.

      ```
      $.uuid
      ```

## 3단계: 자동 생성된 정의 검토 및 저장
<a name="use-inline-map-review-asl-def"></a>

**흐름** 패널에서 상태를 끌어 캔버스에 놓으면 Workflow Studio에서 워크플로의 [Amazon States Language](concepts-amazon-states-language.md)(ASL) 정의를 실시간으로 자동 작성합니다. 필요에 따라 이 정의를 편집할 수 있습니다.

1. (선택 사항) [Inspector 패널](workflow-studio.md#workflow-studio-components-formdefinition) 패널에서 **정의**를 선택하여 자동으로 생성된 워크플로의 Amazon States Language 정의를 봅니다.
**작은 정보**  
Workflow Studio의 [코드 편집기](workflow-studio.md#wfs-interface-code-editor)에서 ASL 정의를 볼 수도 있습니다. 코드 편집기에서 워크플로의 ASL 정의를 편집할 수도 있습니다.

   다음 예제에서는 워크플로에 자동으로 생성된 Amazon States Language 정의를 보여줍니다.

   ```
   {
       "Comment": "Using Map state in Inline mode",
       "StartAt": "Pass",
       "States": {
         "Pass": {
           "Type": "Pass",
           "Next": "Map demo",
           "Result": {
             "foo": "bar",
             "colors": [
               "red",
               "green",
               "blue",
               "yellow",
               "white"
             ]
           }
         },
         "Map demo": {
           "Type": "Map",
           "ItemsPath": "$.colors",
           "ItemProcessor": {
             "ProcessorConfig": {
               "Mode": "INLINE"
             },
             "StartAt": "Generate UUID",
             "States": {
               "Generate UUID": {
                 "Type": "Pass",
                 "End": true,
                 "Parameters": {
                   "uuid.$": "States.UUID()"
                 },
                 "OutputPath": "$.uuid"
               }
             }
           },
           "End": true
         }
       }
     }
   ```

1. 상태 머신 이름을 지정합니다. 이렇게 하려면 기본 상태 머신 이름인 **MyStateMachine** 옆에 있는 편집 아이콘을 선택합니다. 그런 다음 **상태 머신 구성**에서 **상태 머신 이름** 상자에 이름을 지정합니다.

   이 튜토리얼에서는 이름 **InlineMapDemo**를 입력합니다.

1. (선택 사항) **상태 머신 구성**에서 상태 머신 유형 및 실행 역할과 같은 기타 워크플로 설정을 지정합니다.

   이 자습서의 경우 **상태 머신 구성**의 모든 기본 선택 항목을 그대로 둡니다.

1. **역할 생성 확인** 대화 상자에서 **확인**을 선택하여 계속합니다.

   **역할 설정 보기**를 선택하여 **상태 머신 구성**으로 돌아갈 수도 있습니다.
**참고**  
Step Functions에서 만드는 IAM 역할을 삭제하면 나중에 Step Functions에서 이 역할을 다시 만들 수 없습니다. 마찬가지로, 역할을 수정하면(예: IAM 정책의 주요에서 Step Functions 제거) 나중에 Step Functions에서 해당 원본 설정을 복원할 수 없습니다.

## 4단계: 상태 머신 실행
<a name="use-inline-map-sm-run"></a>

상태 머신 실행은 워크플로를 실행하여 작업을 수행하는 인스턴스입니다.

1. **InlineMapDemo** 페이지에서 **실행 시작**을 선택합니다.

1. **실행 시작** 대화 상자에서 다음을 수행합니다.

   1. (선택 사항) 생성된 기본값을 재정의하려면 사용자 지정 실행 이름을 입력합니다.
**비 ASCII 이름 및 로깅**  
Step Functions는 비 ASCII 문자가 포함된 상태 머신, 실행, 활동 및 레이블 이름을 허용합니다. 이러한 문자는 Amazon CloudWatch에서 데이터 로깅을 방지하므로 Step Functions 지표를 추적할 수 있도록 ASCII 문자만 사용하는 것이 좋습니다.

   1. (선택 사항) **입력** 상자에 입력 값을 JSON 형식으로 입력하여 워크플로를 실행합니다.

   1. **실행 시작**을 선택합니다.

   1. Step Functions 콘솔은 실행 ID가 제목인 페이지로 이동합니다. 이는 *실행 세부 정보* 페이지로 알려져 있습니다. 워크플로가 진행되고 완료된 후 실행 결과를 검토할 수 있습니다.

      실행 결과를 검토하려면 **그래프 보기**에서 개별 상태를 선택한 다음 [단계 세부 정보](concepts-view-execution-details.md#exec-details-intf-step-details) 창에서 개별 탭을 선택하여 입력, 출력 및 정의가 포함된 각 상태의 세부 정보를 각각 봅니다. *실행 세부 정보* 페이지에서 볼 수 있는 실행 정보에 대한 자세한 내용은 [실행 세부 정보 개요](concepts-view-execution-details.md#exec-details-interface-overview) 섹션을 참조하세요.

   실행 입력과 출력을 나란히 보려면 **실행 입력 및 출력**을 선택합니다. **출력**에서 `Map` 상태가 반환한 출력 배열을 봅니다. 다음은 출력 배열의 예제입니다.

   ```
   [
     "a85cbc7b-4e65-4ac2-97af-80ed504adc1d",
     "b05bca11-d481-414e-aa9a-88285ec6590d",
     "f42d59f7-bd32-480f-b270-caddb518ce2a",
     "15f18616-517d-4b69-b7c3-bf22222d2efd",
     "690bcfee-6d58-408c-a6b4-1995ccafdbd2"
   ]
   ```