워크플로 스튜디오에서 스테이트 머신 설계 - AWS Step Functions

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

워크플로 스튜디오에서 스테이트 머신 설계

이 자습서에서는 Workflow Studio를 사용하여 다음과 같은 작업을 수행하는 데 필요한 기본 사항을 알아봅니다. AWS Step Functions. Workflow Studio에서는디자인 모드,,, Pass Choice FailWait, 등 여러 상태가 포함된 상태 머신을 만들 수 Parallel 있습니다. 끌어서 놓기 기능을 사용하여 이러한 상태를 검색, 선택 및 구성합니다. 그러면 워크플로의 자동 생성 Amazon States Language (ASL) 정의를 볼 수 있습니다. 또한 Workflow Studio의 코드 모드를 사용하여 워크플로 정의를 편집합니다. 그런 다음 Workflow Studio를 종료하고 상태 시스템을 실행하며 실행 세부 정보를 검토합니다.

이 자습서에서는 상태 시스템을 업데이트하고 실행 출력의 변경 사항을 보는 방법도 알아봅니다. 마지막으로 정리 단계를 수행하고 상태 시스템을 삭제합니다.

이 자습서를 완료하면 Workflow Studio의 디자인 모드와 코드 모드를 모두 사용하여 워크플로를 만들고 구성하는 방법을 알게 됩니다. 또한 상태 시스템을 업데이트, 실행 및 삭제하는 방법도 알게 됩니다.

1단계: Worflow Studio로 이동

  1. Step Functions 콘솔을 열고 상태 시스템 생성을 선택합니다.

  2. 템플릿 선택 대화 상자에서 공백을 선택합니다.

  3. 선택을 선택하여 워크플로 스튜디오를 에서 디자인 모드 엽니다.

2단계: 상태 시스템 만들기

Workflow Studio에서 상태 시스템은 워크플로의 그래픽 표현입니다. Workflow Studio를 사용하면 워크플로의 개별 단계를 정의, 구성 및 검사할 수 있습니다. 다음 단계에서는 Workflow Studio의 디자인 모드를 사용하여 상태 시스템을 만듭니다.

상태 시스템을 생성하려면
  1. Workflow Studio의 디자인 모드에 있는지 확인합니다.

  2. 왼쪽에 있는 상태 브라우저에서 흐름 탭을 선택합니다. 그런 다음 Pass 상태를 끌어 첫 번째 상태를 여기에 놓기 레이블이 지정된 빈 상태에 놓습니다.

  3. 흐름 탭에서 Choice 상태를 끌어 Pass 상태 아래에 놓습니다.

  4. 상태 이름에서 기본 이름인 Choice를 바꿉니다. 이 자습서에서는 IsHelloWorldExample 이름을 사용합니다.

  5. 다른 패스 상태를 드래그하여 상태의 한 브랜치에 드롭합니다. IsHelloWorldExample 그런 다음 Fail 상태를 드래그하여 해당 상태의 다른 분기 아래에 놓습니다. IsHelloWorldExample

  6. Pass (1) 상태를 선택하고 이름을 Yes로 바꿉니다. Fail 상태 이름을 No로 바꿉니다.

  7. boolean 변수를 사용하여 IsHelloWorldExample상태의 분기 로직을 지정합니다. IsHelloWorldExample

    IsHelloWorldExampleFalse이면 워크플로는 No 상태로 전환됩니다. 그렇지 않으면 워크플로는 Yes 상태에서 실행 흐름을 계속합니다.

    분기 로직을 정의하려면 다음을 수행합니다.

    1. 에서 IsHelloWorldExample상태를 선택한 다음 선택 규칙에서 규칙 #1 상자의 편집 아이콘을 선택하여 첫 번째 선택 규칙을 정의합니다. 캔버스 및 워크플로 그래프

    2. 조건 추가를 선택합니다.

    3. 규칙 #1 조건 대화 상자의 변수$.IsHelloWorldExample을 입력합니다.

    4. 연산자에서 같음을 선택합니다.

    5. 에서 부울 상수를 선택한 다음 드롭다운 목록에서 true를 선택합니다.

    6. 조건 저장을 선택합니다.

    7. 다음 상태: 드롭다운 목록에 Yes가 선택되어 있는지 확인합니다.

    8. 새 선택 규칙 추가를 선택한 다음 조건 추가를 선택합니다.

    9. 규칙 #2 상자에서 7.c~7.f 하위 단계를 반복하여 IsHelloWorldExample 변수 값이 false일 때 두 번째 선택 규칙을 정의합니다. 7.e단계에서는 true 대신 false를 선택합니다.

    10. 규칙 #2 상자의 다음 상태: 드롭다운 목록에서 No를 선택합니다.

    11. 기본 규칙 상자에서 편집 아이콘을 선택하여 기본 선택 규칙을 정의한 다음 드롭다운 목록에서 Yes를 선택합니다.

  8. Yes 상태 뒤에 Wait 상태를 추가하고 이름을 Wait 3 sec로 지정합니다. 그런 후 다음 단계를 수행하여 대기 시간을 3초로 구성합니다.

    1. 옵션에서 기본 선택 항목인 고정 간격 대기를 그대로 둡니다.

    2. 아래에서 초 입력이 선택되어 있는지 확인한 다음 상자에 3을 입력합니다.

  9. Wait 3 sec 상태 뒤에 Parallel 상태를 추가합니다. 두 브랜치에 Pass 상태 2개를 추가합니다. 첫 번째 Pass 상태 이름을 Hello로 지정합니다. 두 번째 Pass 상태 이름을 World로 지정합니다.

    완료된 워크플로는 다음 다이어그램과 같아야 합니다.

    IsHelloWorldExample 스테이트 머신 워크플로의 스크린샷

3단계: 자동 생성된 Amazon States Language 정의 검토

Flow 탭에서 상태를 캔버스로 드래그 앤 드롭하면 Workflow Studio가 자동으로 워크플로의 Amazon States Language (ASL) 정의를 실시간으로 작성합니다. 인스펙터 패널 패널에서 정의 토글 버튼을 선택하여 이 정의를 보거나 필요에 따라 코드 모드로 전환하여 이 정의를 편집합니다. 워크플로 정의 편집 방법은 이 자습서의 4단계를 참조하세요.

  • (선택 사항) Inspector 패널에서 정의를 선택하고 상태 시스템의 워크플로를 봅니다.

    다음 예제 코드에서는 자동으로 생성된 IsHelloWorldExample 상태 시스템의 Amazon States Language 정의를 보여줍니다. Workflow Studio에 추가한 Choice 상태는 2단계에서 정의한 분기 로직을 기반으로 실행 흐름을 결정하는 데 사용됩니다.

    { "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample", "Comment": "A Pass state passes its input to its output, without performing work. Pass states are useful when constructing and debugging state machines." }, "IsHelloWorldExample": { "Type": "Choice", "Comment": "A Choice state adds branching logic to a state machine. Choice rules can implement 16 different comparison operators, and can be combined using And, Or, and Not\"", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" } ], "Default": "Yes" }, "No": { "Type": "Fail", "Cause": "Not Hello World" }, "Yes": { "Type": "Pass", "Next": "Wait 3 sec" }, "Wait 3 sec": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ] } } }

4단계: 코드 모드에서 워크플로 정의 편집

Workflow Studio의 코드 모드는 워크플로의 ASL 정의를 보고 편집할 수 있는 통합 코드 편집기를 제공합니다.

  1. 코드를 선택하여 코드 모드로 전환합니다.

  2. Parallel 상태가 정의되면 커서를 놓고 Enter 키를 누릅니다.

  3. Ctrl+space를 누르면 Parallel 상태 뒤에 추가할 수 있는 상태의 목록이 표시됩니다.

  4. 옵션 목록에서 Pass 상태를 선택합니다. 코드 편집기는 Pass 상태의 보일러플레이트 코드를 추가합니다.

  5. 이 상태를 추가하면 워크플로 정의에서 오류가 발생합니다. Parallel 상태 정의에서 "End": true"Next": "PassState"로 바꿉니다.

  6. 추가한 Pass 상태 정의에서 다음과 같이 변경합니다.

    1. 결과 노드를 제거합니다.

    2. "ResultPath": "$.result","Next": "NextState"를 제거합니다.

    3. "Type": "Pass", 뒤에 "End": true를 입력합니다.

    4. Pass 상태 정의 뒤에 ,를 추가합니다.

이제 워크플로 정의가 다음 정의와 비슷하게 표시됩니다.

{ "Comment": "A description of my state machine", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample" }, "IsHelloWorldExample": { "Type": "Choice", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" } ], "Default": "Yes" }, "Yes": { "Type": "Pass", "Next": "Wait 3 seconds" }, "Wait 3 seconds": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ], "Next": "PassState" }, "PassState": { "Type": "Pass", "End": true }, "No": { "Type": "Fail" } } }

5단계: 상태 시스템 저장

  1. Config more 를 선택하거나 기본 상태 머신 이름 옆에 있는 편집 아이콘을 선택합니다. MyStateMachine 상태 머신 구성에서 이름을 지정합니다. 예를 들면 HelloWorld를 입력합니다.

  2. (선택 사항) 상태 시스템 유형 및 실행 역할과 같은 기타 워크플로 설정을 지정합니다. 이 자습서의 경우 상태 머신 구성의 모든 기본 선택 항목을 그대로 둡니다.

  3. 생성(Create)을 선택합니다.

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

    역할 구성 보기를 선택하여 구성 모드로 돌아갈 수도 있습니다.

구성 모드에 대한 자세한 내용은 Workflow Studio의 구성 모드를 참조하세요.

6단계: 상태 시스템 실행

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

  1. 상태 머신 페이지에서 스테이트 머신을 선택합니다. HelloWorld

  2. HelloWorld페이지에서 실행 시작을 선택합니다.

  3. (선택 사항) 생성된 기본값을 재정의하려면 사용자 지정 실행 이름을 입력합니다.

    ASCII비이름 및 로깅

    Step Functions는 ASCII -자가 아닌 문자를 포함하는 상태 머신, 실행, 액티비티 및 레이블의 이름을 허용합니다. CloudWatchAmazon에서는 이러한 문자를 사용할 수 없으므로 지표를 추적할 수 있도록 ASCII 문자만 사용하는 것이 좋습니다 CloudWatch.

  4. 입력 상자에 실행에 필요한 입력 값을 JSON 형식으로 입력합니다. IsHelloWorldExample 변수는 입력에 따라 실행될 상태 시스템 흐름을 결정합니다. 지금부터 다음 입력 값을 사용합니다.

    { "IsHelloWorldExample": true }
    참고

    실행 입력 지정은 선택 사항이지만 이 자습서에서는 위의 예제 입력과 유사한 실행 입력을 지정해야 합니다. 이 입력 값은 상태 시스템을 실행할 때의 Choice 상태에서 참조됩니다.

  5. 실행 시작을 선택합니다.

  6. Step Functions 콘솔은 실행 ID가 제목인 페이지로 이동합니다. 이 페이지를 실행 세부 정보 페이지라고 합니다. 실행이 진행되는 동안 또는 완료된 후에 이 페이지에서 실행 결과를 검토할 수 있습니다.

    실행 결과를 검토하려면 그래프 보기에서 개별 상태를 선택한 다음 단계 세부 정보 창에서 개별 탭을 선택하여 입력, 출력 및 정의가 포함된 각 상태의 세부 정보를 각각 봅니다. 실행 세부 정보 페이지에서 볼 수 있는 실행 정보에 대한 자세한 내용은 실행 세부 정보 개요 섹션을 참조하세요.

    이 자습서에서는 입력 값 "IsHelloWorldExample": true을 입력하면 다음 출력이 표시됩니다.

    { "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }

7단계: 상태 시스템 업데이트

상태 시스템을 업데이트하면 업데이트가 최종적으로 일관되게 유지됩니다. 잠시 후 새로 시작된 모든 실행에 업데이트된 상태 시스템 정의가 반영됩니다. 현재 실행 중인 모든 실행은 이전 정의에 따라 완료될 때까지 실행됩니다.

이 단계에서는 Workflow Studio의 디자인 모드 모드에서 상태 시스템을 업데이트합니다. World라는 Pass 상태에 Result 필드를 추가합니다.

  1. 실행 ID가 제목인 페이지에서 상태 머신 편집을 선택합니다.

  2. 디자인 모드에 있는지 확인합니다.

  3. 캔버스에서 World라는 Pass 상태를 선택한 다음 출력을 선택합니다.

  4. 결과 상자에 "World has been updated!"를 입력합니다.

  5. 저장(Save)을 선택합니다.

  6. (선택 사항) 정의 영역에서 워크플로의 업데이트된 Amazon States Language 정의를 봅니다.

    { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "Result": "World has been updated!", "End": true } } } ], "Next": "PassState" }
  7. 실행을 선택합니다.

  8. 새 탭에 열리는 실행 시작 대화 상자에 다음 실행 입력을 제공합니다.

    { "IsHelloWorldExample": true }
  9. 실행 시작을 선택합니다.

  10. (선택 사항) 그래프 보기에서 World 단계를 선택한 다음 출력을 선택합니다. 출력은 World has been updated!입니다.

8단계: 정리

상태 시스템 삭제하기
  1. 탐색 창에서 상태 시스템을 선택합니다.

  2. 상태 머신 페이지에서 을 선택한 다음 삭제를 선택합니다 HelloWorld.

  3. 상태 머신 삭제 대화 상자에 delete를 입력하여 삭제를 확인합니다.

  4. Delete(삭제)를 선택합니다.

    성공적으로 삭제되면 화면 상단에 녹색 상태 표시줄이 나타납니다. 녹색 상태 표시줄은 상태 시스템이 삭제 대상으로 표시되었음을 알려줍니다. 진행 중인 모든 실행이 중지되면 상태 시스템이 삭제됩니다.

실행 역할 삭제하기
  1. 역할 페이지를 엽니다IAM.

  2. Step Functions에서 생성한 IAM 역할을 선택합니다. 예: StepFunctions- HelloWorld -role- EXAMPLE.

  3. 역할 삭제(Delete role)를 선택합니다.

  4. 예, 삭제(Yes, delete)를 선택합니다.