Step Functions 워크플로우에서 병렬 작업 정의 - AWS Step Functions

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

Step Functions 워크플로우에서 병렬 작업 정의

이전 조건부 로직 추가 주제에서는 워크플로우에서 다양한 경로를 선택하는 조건을 설정했습니다. 지금까지는 단계가 순차적으로 실행되었습니다. 이 주제에서는 상태를 사용하여 두 개 이상의 단계를 동시에 실행하는 방법을 알아봅니다. Parallel

Parallel 상태에 있는 두 브랜치는 동일한 입력을 받지만 각 브랜치는 해당 상태에 맞는 입력 부분을 처리합니다. Step Functions는 각 분기가 완료될 때까지 기다렸다가 다음 단계로 진행합니다.

Parallel 상태를 사용하여 신청자의 신원과 주소를 동시에 확인할 수 있습니다.

1단계: Lambda 함수를 만들어 필수 검사 수행

이 신용 카드 신청 워크플로는 Parallel 상태 내에서 Lambda 함수 2개를 간접적으로 호출하여 신청자의 신원과 주소를 확인합니다. 이러한 검사는 Parallel 상태를 통해 동시에 수행됩니다. 상태 시스템은 두 병렬 브랜치 모두 실행을 완료한 후에만 실행을 완료합니다.

check-identity 및 check-address Lambda 함수 만들기
  1. 새 탭 또는 창에서 Lambda 콘솔을 열고 및 라는 제목의 Node.js Lambda 함수 두 개를 생성합니다. check-identity check-address 콘솔을 사용하여 Lambda 함수를 생성하는 방법에 대한 자세한 내용은 콘솔의 Lambda 함수 생성을 참조하십시오. AWS Lambda 개발자 안내서.

  2. check-identity 함수 페이지를 열고 코드 소스 영역의 기존 코드를 다음 코드로 바꿉니다.

    const ssnRegex = /^\d{3}-?\d{2}-?\d{4}$/; const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; class ValidationError extends Error { constructor(message) { super(message); this.name = "CustomValidationError"; } } exports.handler = async (event) => { const { ssn, email } = event; console.log(`SSN: ${ssn} and email: ${email}`); const approved = ssnRegex.test(ssn) && emailRegex.test(email); if (!approved) { throw new ValidationError("Check Identity Validation Failed"); } return { statusCode: 200, body: JSON.stringify({ approved, message: `Identity validation ${approved ? 'passed' : 'failed'}` }) } };
  3. check-address 함수 페이지를 열고 코드 소스 영역의 기존 코드를 다음 코드로 바꿉니다.

    class ValidationError extends Error { constructor(message) { super(message); this.name = "CustomAddressValidationError"; } } exports.handler = async event => { const { street, city, state, zip } = event; console.log(`Address information: ${street}, ${city}, ${state} - ${zip}`); const approved = [street, city, state, zip].every(i => i?.trim().length > 0); if (!approved) { throw new ValidationError("Check Address Validation Failed"); } return { statusCode: 200, body: JSON.stringify({ approved, message: `Address validation ${ approved ? 'passed' : 'failed'}` }) } };
  4. 두 Lambda 함수 모두에 대해 함수 개요 섹션에서 각각의 Amazon 리소스 이름 ARN () 을 복사하고 텍스트 파일에 저장합니다. Verify 신청자의 ID 및 주소 상태에 대한 서비스 통합을 지정하는 ARNs 동안 이 함수가 필요합니다. 다음은 예시입니다ARN.

    arn:aws:lambda:us-east-2:123456789012:function:HelloWorld

2단계: 워크플로 업데이트 - 수행할 병렬 작업 추가

Step Functions 콘솔에서 워크플로를 업데이트하여 1단계에서 만든 check-identitycheck-address Lambda 함수와의 서비스 통합을 지정합니다.

워크플로에 Parallel 작업 추가하기
  1. Step Functions에서 스테이트 머신을 생성합니다.에서 만든 워크플로 프로토타입이 포함된 Step Functions 콘솔 창을 엽니다.

  2. Verify identity를 선택하고 구성 탭에서 다음을 수행합니다.

    1. 통합 유형에 기본 선택 항목인 최적화를 그대로 둡니다.

      참고

      Step Functions를 사용하여 다른 사람과 통합할 수 있습니다. AWS 서비스 워크플로우에서 이를 오케스트레이션할 수 있습니다. 서비스 통합과 해당 유형에 대한 자세한 내용은 Step Functions와 서비스 통합 섹션을 참조하세요.

    2. 함수 이름의 드롭다운 목록에서 check-identity Lambda 함수를 선택합니다.

    3. 페이로드페이로드 입력을 선택한 다음 예제 페이로드를 다음과 같은 페이로드로 바꿉니다.

      { "email": "janedoe@example.com", "ssn": "012-00-0000" }
  3. Verify address를 선택하고 구성 탭에서 다음을 수행합니다.

    1. 통합 유형에 기본 선택 항목인 최적화를 그대로 둡니다.

    2. 함수 이름의 드롭다운 목록에서 check-address Lambda 함수를 선택합니다.

    3. 페이로드페이로드 입력을 선택한 다음 예제 페이로드를 다음과 같은 페이로드로 바꿉니다.

      { "street": "123 Any St", "city": "Any Town", "state": "AT", "zip": "01000" }
  4. Next(다음)를 선택합니다.

다음 단계

다음 단계에서는 항목을 반복하는 방법을 배우게 됩니다. 항목 반복